使用特定的JRE运行JAR文件

43

在Windows上是否有一种方法可以使用位于特定文件夹中的JRE运行JAR文件?类似于Eclipse在你指定的某些路径中查找其JRE的方式。可以使用Windows可执行代码(C或C++)或批处理文件完成该操作。谢谢!


“在Windows上有没有一种方法可以使用位于特定文件夹中的JRE运行JAR文件?”为什么要使用特定文件夹而不是特定版本的JRE? - Andrew Thompson
5个回答

78

JRE目录下有一个bin/java.exe文件。

你可以简单地使用该JRE中的命令来运行一个jar包

<path_to_jre>/bin/java.exe -jar Executable.jar

如果您不想每次都打开控制台,只需将上述行放入一个 .bat 文件中,然后双击该文件即可。


11
还请参考 java 命令javaw 变种。javaw 命令与 java 完全相同,只不过使用 javaw 时没有关联的控制台窗口。当您不希望出现命令提示窗口时,请使用 javaw。然而,如果由于某些原因启动失败,javaw 启动器将显示一个带有错误信息的对话框。 - Andrew Thompson

15

通过命令行运行

<path_to_jre>/bin/java.exe -jar Executable.jar

(或使用 javaw.exe 在启动 JAR 后立即返回命令提示符)

或设置环境变量

许多启动脚本都支持变量 JRE_HOMEJAVA_HOME,分别用于 JRE 和 JDK。有些不喜欢空格,因此要使用短路径约定 (C:\Progra~1\Java\jre1.8.0_171)。

在 64 位系统上:
Progra~1 = Program Files
Progra~2 = Program Files (x86)

或设置文件关联

以双击方式启动 JAR。不幸的是,GUI(控制面板\所有控制面板项\默认程序\设置关联)非常糟糕,因此您必须在注册表中执行操作。

这是我选择 32/64 位 JRE 的首选方法,当忽略控制面板设置时。

  1. 检查 HKEY_CLASSES_ROOT\.jar 中的默认值是否为 jarfile
  2. 检查 HKEY_CLASSES_ROOT\jarfile\shell\open\command 中的默认值是否指向您的 JRE。

在我的情况下适用于 64 位环境:

"C:\Program Files\Java\jre1.8.0_171\bin\javaw.exe" -jar "%1" %*

注意引号:javaw路径包含空格;JAR路径可以包含空格;传递的参数用空格分隔。


5

在与您的jar文件相同的文件夹中创建此批处理文件:

@echo off
set path=C:\Program Files (x86)\java\bin\;%path%
java -version
javaw -jar jaryouwanttorun.jar
pause
exit

4

PowerShell的语法如下:

& 'C:\Program Files\Java\jdk1.7.0_80\bin\java.exe' -jar .\Executable.jar -Xmx256m

使用路径指定您系统中安装的特定java.exe文件。

0

您可以更改Windows环境变量中的JAVA_HOME(请参见此处)。将其指向您想要运行的JRE版本。我相信没有编程方式来实现它(因为正确的JRE在运行时加载)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接