java - 强制 java 应用程序使用特定的 jre

标签 java

我创建了一个java应用程序,它可以在某些机器上运行,但在少数机器上无法运行。不知道是不是jre的原因。 如何找到应用程序使用 jre 的路径以及如何强制该应用程序在特定位置使用 jre。

提前致谢

最佳答案

为了回答当前的问题,Java 系统属性保存您所寻求的值:

String jreLocation = System.getProperty("java.home");
String javaVersion = System.getProperty("java.version");

我添加第二个,因为您的问题可能是由不同版本的 Java 引起的(如果错误是 java.lang.UnsupportedClassVersionError)。

就强制执行特定的 JRE 而言,不可能从正在运行的 Java 程序强制使用 JVM 版本(这需要在 shell 脚本或类似脚本中)。您可以检查“java.home”的值,如果不是您想要的值,则退出,但这将是不明智的,因为这会因系统而异。如果“java.version”不在一组受支持的值范围内,更好的选择是退出并显示错误消息。

但是,最好的方法是解决最初的问题,以便您的程序可以在您需要它运行的所有系统上运行。为此,我建议用在这些其他系统上运行程序时遇到的错误开始一个新问题。

关于java - 强制 java 应用程序使用特定的 jre,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45856506/

相关文章:

java - 如何使用包含数组的对象?

java - 未生成 R.java 文件

java - 如何从txt中读取行?

java - 确定 ServiceLocator 没有用户定义的服务

java - String.split() 将保留原始的 char 数组在里面

java - 分块发送大图像

java - android中使用java的乘法表

java - Maven 构建失败,因为它无法识别添加到构建路径的 .jar

java - 检查 playframework 模板中的集合是否为空

java - JazzyViewPager java.lang.ClassNotFoundException