使用特定JRE运行JAR文件

sol*_*var 24 java windows jar batch-file

Windows上有没有办法使用位于特定文件夹中的JRE运行JAR文件?类似于Eclipse在某些路径中查找其JRE的方式.某些Windows可执行代码(C或C++)或批处理文件都可以完成这项工作.谢谢!

Fli*_*irs 51

JRE目录有一个bin/java.exe.

您可以使用该JRE运行jar

<path_to_jre>/bin/java.exe -jar Executable.jar
Run Code Online (Sandbox Code Playgroud)

如果您不想每次都打开控制台,只需将上面的行放在.bat文件中,然后双击它即可.

  • 另请参阅[java命令]的`javaw`变体(http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html).*"**javaw**命令与**java**完全相同,但**javaw**没有关联的控制台窗口.当你不想要命令提示符窗口时,请使用**javaw**然而,如果由于某种原因启动失败,**javaw**启动器将显示一个包含错误信息的对话框."* (7认同)

小智 5

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

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


Hro*_*bky 5

从命令运行

<path_to_jre>/bin/java.exe -jar Executable.jar
Run Code Online (Sandbox Code Playgroud)

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

或者设置环境变量

许多启动脚本分别尊重变量JRE_HOMEJAVA_HOMEJRE 和 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. 检查 in 中的默认值是否HKEY_CLASSES_ROOT\jarfile\shell\open\command指向您的 JRE。

在我的 64 位环境中:

"C:\Program Files\Java\jre1.8.0_171\bin\javaw.exe" -jar "%1" %*
Run Code Online (Sandbox Code Playgroud)

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