Windows 上有没有办法使用位于特定文件夹中的 JRE 运行 JAR 文件?类似于 Eclipse 在您指定的路径中查找其 JRE 的方式。一些 Windows 可执行代码(C 或 C++)或批处理文件都可以完成这项工作。谢谢!
5 回答
JRE 目录有一个 bin/java.exe。
您可以简单地从该 JRE 运行一个 jar
<path_to_jre>/bin/java.exe -jar Executable.jar
如果您不想每次都打开控制台,只需将上述行放入 .bat 文件并双击它即可。
从命令运行
<path_to_jre>/bin/java.exe -jar Executable.jar
(或使用 javaw.exe 在启动 JAR 后立即返回命令提示符)
或者设置环境变量
许多启动脚本分别尊重变量JRE_HOME
和JAVA_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 的方法。
- 检查默认值
HKEY_CLASSES_ROOT\.jar
是否为jarfile
- 检查默认值是否
HKEY_CLASSES_ROOT\jarfile\shell\open\command
指向您的 JRE。
在我的 64 位环境中:
"C:\Program Files\Java\jre1.8.0_171\bin\javaw.exe" -jar "%1" %*
注意引号:javaw 路径包含空格;JAR 路径可以包含空格;传递的参数以空格分隔。
在与 jarfile 相同的文件夹中创建此批处理文件:
@echo off
set path=C:\Program Files (x86)\java\bin\;%path%
java -version
javaw -jar jaryouwanttorun.jar
pause
exit
PowerShell语法如下
& 'C:\Program Files\Java\jdk1.7.0_80\bin\java.exe' -jar .\Executable.jar -Xmx256m
使用系统中安装的特定 java.exe 的路径。
您可以更改 JAVA_HOME 的 Windows 环境变量(请参阅此处)。将它指向您希望它运行的 JRE。我确定没有编程方式来做到这一点(因为在运行时加载了正确的 JRE)。