因此,我尝试使用 Java 打开任何以 .jar 结尾的文件,而无需将 Java 安装到 Windows 中,而是使用自定义安装路径。目前我的代码如下所示,也是我在网上找到的:
"C:\Users\pasi1\Desktop\Minecraft Sachen\MultiMc\Java Installs\jdk-17.0.3+7\bin\java.exe" -jar "files/OptiFine_1.19.2_HD_U_H9.jar"
基本上,文件夹“files”中的任何 .jar 文件(该文件夹中只有 1 个文件)都应启动,而不必知道该文件的具体名称,只需通过文件扩展名即可。使用上面的代码,我每次都必须重命名要在批处理脚本中打开的文件,但到目前为止它已经起作用了。
我确实在网上找到了一些脚本,但它们都无法正确打开文件(无法用 Java 打开)。
答案1
如果您希望它像批处理文件、JavaScript 和其他文件一样自动运行。
- 您需要修改 PATHEXT 环境变量并将 .jar 添加到列表中。查看列表后,其余内容应该不言自明。此更改将允许 Windows 使用关联执行文件。除非文件名存在歧义,否则您甚至可以在进行此更改后跳过 .jar 扩展名。请注意,这也为其他程序(恶意行为者)运行 .jar 文件提供了可能性……但与 .bat 或 .exe 并无不同。
- 注册表需要包含带有“打开”动词的 .jar 文件的文件关联。我认为这应该已由 JRE 安装程序完成,但我很少运行 Java,因此我不确定这是否是安装程序的功能。这也是
start
@Hannu 优秀答案中提到的方法所必需的。
修改 PATHEXT 环境并启动新控制台后,您便可以像执行可执行文件一样执行 .jar 文件。在 *nix 中,这是通过文件开头的 SHEBANG#!/bin/bash
或#!/bin/perl
其他方式完成的。但 Windows 机制非常不同(如上所述)。
答案2
如果您从未安装过 Java,而只是将其作为另一个已安装产品的一部分,则以下操作可能会有效(或无效):
以管理员身份运行命令提示符 (CMD)
输入以下命令:
assoc .jar=jarfile ftype jarfile="C:\Users\pasi1\Desktop\Minecraft Sachen\MultiMc\Java Installs\jdk-17.0.3+7\bin\java.exe" -jar "%1" %*
随后,在资源管理器中双击.jar
文件将使用指定的打开文件java.exe
。
如果这样做之后它仍然不起作用,则可能意味着java.exe
您发现的无法独立运行,而只能在 Minecraft 环境中运行。