gpt4 book ai didi

java - 使用JDK6动态编译src,切换到JDK环境后,ToolProvider.getSystemJavaCompiler()仍然得到null;

转载 作者:行者123 更新时间:2023-12-01 15:51:36 39 4
gpt4 key购买 nike

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

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

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

始终返回 null;

而且我注意到每台服务器上都安装了 JDK6,所以我写这个希望解决这个问题:

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

但是没有用,也许java环境不会立即改变到我刚刚设置的地方,它仍然得到空对象。

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

谢谢。

最佳答案

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

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

/opt/jdk-i386-60/bin/java -jar myApp.jar

关于java - 使用JDK6动态编译src,切换到JDK环境后,ToolProvider.getSystemJavaCompiler()仍然得到null;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907451/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com