【发布时间】:2011-05-18 22:46:17
【问题描述】:
我有一个场景,我必须在我的应用程序运行时生成 Java 代码。
可以编译和运行我的应用程序中的代码(作为单独的应用程序)。
是否可以在同一个应用程序中编译然后使用它。想不出有什么可能
【问题讨论】:
标签: java compilation
我有一个场景,我必须在我的应用程序运行时生成 Java 代码。
可以编译和运行我的应用程序中的代码(作为单独的应用程序)。
是否可以在同一个应用程序中编译然后使用它。想不出有什么可能
【问题讨论】:
标签: java compilation
查看Create dynamic applications with javax.tools。 我今天第二次提到这个——我发誓我不为他们工作。
【讨论】:
你可以使用JavaCompiler的实例:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
点击链接获取有关如何使用它的示例。
【讨论】:
jdk1.7.0_05/jre/lib/rt.jar: javax/tools/JavaCompiler.class 和 javax/tools/ToolProvider.class
使用ProcessBuilder 或Runtime.exec(),您可以从您的java 代码运行任何命令行应用程序
这包括 javac 编译器和 java 作为一个单独的进程
【讨论】:
Runtime#exec() 并带有javac MyFile.java 的参数,其中MyFile.java 是由MyCompilingUtility.java 通过PrintWriter 创建的,我看不到class为MyFile.java 生成的文件。为什么会这样?