gpt4 book ai didi

java - 如何判断 JDK 在运行的 JVM 中是否可用?

转载 作者:太空狗 更新时间:2023-10-29 22:52:56 25 4
gpt4 key购买 nike

注意:所有类似的问题都是从 shell 的角度回答这个问题(例如 javac 是否可用?java -versionwhich java).我正在明确地寻找当前正在运行的 JVM 的视角

有些程序需要从 JDK 的 JRE 中运行,而不仅仅是“JRE”。我想知道是否有一种简单的方法可以找出我的当前运行的程序是在什么程序中执行的。

我正在寻找一种通用的方法来解决这个问题,而不是分析有问题的程序并复制它对 JDK 功能的使用。这就是为什么如果可能的话,如果 javac 在路径上,我宁愿不执行外部进程测试。我更愿意寻找一些可以在 JDK 中运行但在 JRE 中失败的代码。

它可能是 Class.forName,其中包含一个仅在 JDK 中可用的类。它可能是一个系统属性。或其他任何内容。

如果我必须使用 javac 执行外部进程:那就这样吧。但我更喜欢更简单和通用的东西。

澄清来自评论的深处:

我有时会遇到 Liferay 的这个问题,它需要从 JDK 的 JRE 中运行。如果在没有可用的 JDK 的情况下运行,我很想部署另一个提供用户友好错误消息的插件。我回避分析哪些代码是在纯 JRE 环境中失败的代码,我不想修改 Liferay 的代码,而是添加我自己的插件来进行分析和警告。

最佳答案

javax.tools.ToolProvider.getSystemJavaCompiler() 如果没有可用的编译器,将返回 null,如果是,则返回 JavaCompiler

当然,从技术上讲,它只是告诉您编译器 是否可用,但在大多数情况下这意味着 JDK 的存在。

关于java - 如何判断 JDK 在运行的 JVM 中是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57114846/

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