2017-04-14 42 views
-1

的字节码指令集我是新来openJDK8,我想找到其中字节码指令集的文件(S)存在它是用来生成源的字节码 .java文件。其次我需要字节码生成和执行过程的基本知识。哪个文件中包含的OpenJDK的8

我是一名研究生,致力于openJDK字节码。你能指导吗?

+0

[试过谷歌搜索](http://www.javaworld.com/article/2077233/core-java/bytecode-basics.html)?) – Scadge

+0

是的。没有找到一些直接的答案。 –

+3

不清楚你在说什么,但它听起来像一个编译器组件。不一定是单个源文件。其余的内容太广泛了。研究JVM规范和JLS以便开始和编译器构造。 – EJP

回答

1

这个问题似乎混淆了许多不同的东西。如果你正在创建一个新的字节码,你需要做几件事情。

  • 指定/定义字节码
  • 修改编译器生成字节码
  • 修改运行时要明白,字节码

Java的字节码在Java Virtual Machine Specification规定。如果你需要定义一个新的,你需要将它指定到一个类似的程度,尽管你不必在那里发布它。

负责采取Java源代码并生成Java字节码的Java SDK部分是Java编译器(javac)。 OpenJDK的javac源代码可用here。 Eclipse的Java编译器的源代码也可用,但我不知道在哪里。

一旦你有java编译器生成自定义字节码,你必须教JVM如何解释它。

OpenJDK VM(热点)有几个处理执行字节码的组件。有多个解释器(读取和执行字节码)和多个Just-In-Time优化编译器,它们读取字节码并在执行之前(可能)将其编译为机器码。它们的源代码都是part of the hotspot。您可能只想限制解释器并禁用编译器进行初始工作。如果是这样,this set of notes explain how the hotspot interpreter works

+0

是的,我只想限于解释者。无需更改编译器。我只需要打开字节码,用一个新的特定的指令代替一些指令(就像压缩一样)。并让口译员能够理解(并替换)我的补充说明。 –

+0

@adeeliqbal我不明白短语“我只是需要打开字节码”。你想修改由javac生成的字节码吗?或者采用由javac生成的字节码并进一步处理它? – omajid

+0

是的。完整的任务是修改由javac生成的字节码,并在嵌入式系统中对其进行进一步处理。 –

相关问题