コード例 #1
0
ファイル: interpreter.py プロジェクト: MrHamdulay/myjvm
class Interpreter:
    def __init__(self, initial_class, classpath):
        self.initial_class_name = initial_class
        self.vm = VM(classpath)

    def start(self):
        self.vm.class_loader.load_jar('klasses/rt.jar')
        self.vm.warmup()
        # initialise klass
        klass = self.vm.load_class(self.initial_class_name)
        self.vm.frame_stack[0].push('java')

        # run initial method
        self.vm.run_method(klass, klass.get_method('main', '([Ljava/lang/String;)V')[1])
        self.vm.run_bytecode()
コード例 #2
0
ファイル: interpreter.py プロジェクト: MrHamdulay/myjvm
class Interpreter:
    def __init__(self, initial_class, classpath):
        self.initial_class_name = initial_class
        self.vm = VM(classpath)

    def start(self):
        self.vm.class_loader.load_jar('klasses/rt.jar')
        self.vm.warmup()
        # initialise klass
        klass = self.vm.load_class(self.initial_class_name)
        self.vm.frame_stack[0].push('java')

        # run initial method
        self.vm.run_method(
            klass,
            klass.get_method('main', '([Ljava/lang/String;)V')[1])
        self.vm.run_bytecode()