0

我正在使用 JDK6 从 UI 编译输入 src 并立即运行。

但问题是,默认情况下我的应用程序使用的是 jre 而不是 jdk,所以:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

总是返回空值;

而且我注意到在每台服务器上也安装了 JDK6,所以我写这个是为了解决这个问题:

System.setProperty("java.home", "\opt\jdk-i386-60");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// Dynamic compile and run app

但它没有用,可能java环境不会立即更改为我刚刚设置的那个地方,它仍然得到了null对象。

所以,我的问题是如何将 jre 环境切换到 jdk 并使其立即生效,我们可以获得 JavaCompiler 对象?

谢谢。

4

1 回答 1

1

不要试图设置java.home!通过命令行开关设置它通常会导致很多麻烦(找不到库,...)。通过设置它setProperty()通常不会有任何影响。

相反,如果您想使用特定的 Java 安装来执行您的应用程序,只需使用其java可执行文件来启动您的应用程序:

/opt/jdk-i386-60/bin/java -jar myApp.jar
于 2011-05-06T06:43:02.120 回答