过去两个月,我一直在为Java,Assembly和JMM开发IDE,并且已经能够让JMM编译器通过IDE运行并编译给定的代码。由于某种原因, 我似乎无法找到使用Java代码执行此操作的方法。是否有任何API调用可用于编译给定的类,或者甚至以某种方式调用javac并通过命令行为其提供必要的值?编译代码 - 创建IDE
任何帮助将不胜感激!
的IDE:
过去两个月,我一直在为Java,Assembly和JMM开发IDE,并且已经能够让JMM编译器通过IDE运行并编译给定的代码。由于某种原因, 我似乎无法找到使用Java代码执行此操作的方法。是否有任何API调用可用于编译给定的类,或者甚至以某种方式调用javac并通过命令行为其提供必要的值?编译代码 - 创建IDE
任何帮助将不胜感激!
的IDE:
可以使用JavaCompiler。
您可以使用a URLClassLoader的组合加载类的源代码和a JavaCompiler来编译它。
人为的例子:URLClassLoader and accessibility of package-private methods
'的Runtime.exec()'和'javac'应该做的伎俩,如果类是在一个文件中。 – MightyPork
请参见javax.tools中的[Java编译器API](http://openjdk.java.net/groups/compiler/guide/compilerAPI.html)(稍后在Java 1.6之后发布)。 [示例(请参阅接受的答案)](http://stackoverflow.com/questions/12173294/compiling-fully-in-memory-with-javax-tools-javacompiler) –