我正在构建一个应用程序,用户可以在其中更改Java设置并指向任何jdk。但它必须是Oracle JDK,不应该是openJDK。有没有办法检查JDK是否是开放JDK或Oracle JDK给定其java路径c:\bin\jdk\binjava.exe
?
答案 0 :(得分:2)
最简单的方法是System.exec()
c:\bin\jdk\bin\java.exe -version
并解析它的输出。 OpenJDK和Sun JDK有不同的文本输出。
这不是最佳选择,但请注意:即使您发现类名,功能或类似内容存在差异,它仍然只适用于某些版本。你永远不能依赖不同的差异。
答案 1 :(得分:1)
java -version
命令将在其输出文本中提供Java版本详细信息和运行时环境名称。使用运行时环境名称,您可以找到它。
例如,如果是OpenJDK
openjdk version "<version>"
OpenJDK Runtime Environment .....
OpenJDK XX-Bit Server VM .....
对于其他JDK,您将在输出中看到JDK类型。
Sample:
java version "<version>"
Java(TM) SE Runtime Environment .....
Java HotSpot(TM) XX-Bit Server VM .....