Пример #1
0
        public void StartJVM(ConsoleParam param)
        {
            //初始化指令集
            Instruction.InitialInstructions();
            Entry classPath = new ClassPath(param.JdkPath, param.Path);

            byte[] classData = classPath.ReadClass(param.ClassName);
            if (Switchs.DebugParse)
            {
                Console.Write(BitConverter.ToString(classData));
            }
            Console.WriteLine();
            ClassFile   classFile   = ClassReader.Read(classData);
            Interpreter interpreter = new Interpreter();

            interpreter.interpret(classFile.Methods[1]);


            Console.Write("finished with exit code 0");
        }
Пример #2
0
        public static ConsoleParam Read()
        {
            Console.Out.Write("CsJVM: ");

            //string param = Console.ReadLine();
            //string[] paramArray = param.Split(' ');
            //while (paramArray.Length != 3)
            //{
            //    Console.Out.WriteLine("IllegalArguments");
            //    param = Console.ReadLine();
            //    paramArray = param.Split(' ');
            //}
            ConsoleParam consoleParam = new ConsoleParam();

            //string classFullName = paramArray[2];
            //classFullName = classFullName.Replace(".class", "`class");
            //classFullName = classFullName.Replace('.', '/');
            //classFullName = classFullName.Replace("`class", ".class");
            //consoleParam.ClassName = classFullName;
            return(consoleParam);
        }