Java:如何检测当前的Java运行时是JRE还是JDK?

Cai*_*der 6 java eclipse eclipse-plugin eclipse-rcp eclipse-jdt

我有一个Java应用程序,我想为用户提供编译Java源代码的能力(使用JavaCompiler接口)

如果用户在JRE上运行应用程序,我的应用程序应该告诉用户没有JavaCompiler实例可用.

那么如何在java程序中检测JDK或JRE?

axt*_*avt 11

您可以请求JavaCompilerfrom 的实现ToolProvider.如果它返回null,则没有JavaCompiler可用的实现:

JavaCompiler c = ToolProvider.getSystemJavaCompiler();
if (c == null) {
    // JRE
}
Run Code Online (Sandbox Code Playgroud)