【问题标题】:Java: how to detect the current java runtime is a JRE or JDK?Java:如何检测当前的java运行时是JRE还是JDK?
【发布时间】:2011-12-11 14:57:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: java eclipse eclipse-plugin eclipse-rcp eclipse-jdt


    【解决方案1】:

    【讨论】:

      【解决方案2】:

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

      JavaCompiler c = ToolProvider.getSystemJavaCompiler();
      if (c == null) {
          // JRE
      }
      

      【讨论】:

      • 我不确定这是否有效 - 似乎 JavaCompiler 接口本身始终可用,但 JDK 与 JRE 的区别取决于是否有实现。
      • JDK 安装正确时效果很好,并且可以在类路径中找到javac。但是如果我想允许用户运行它,即使无法访问javac 怎么办?我只想知道我是在 JDK 还是 JRE 上运行...参见this link - 如果用户定义了环境变量,它就可以解决。但由于我不需要javac,我不想用这个额外的配置开销来打扰用户......
      • 无法在 JDK7x64 上运行,我们确定这仍然有效吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2013-07-10
      • 1970-01-01
      • 2011-05-11
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多