无法在 Windows 7 上通过双击运行 .jar 文件

无法在 Windows 7 上通过双击运行 .jar 文件

在命令行中运行 .jar 文件可以正常工作,但是我无法通过双击来执行 PC 上的 .jar 文件。有趣的是,同样的 .jar 文件在我的笔记本电脑上双击就能成功执行。

我在变量中包含了%JAVA_HOME\bin和。 我已设置为。 我已   设置为。JDK_HOME\binPATH
JAVA_HOMEC:\Program Files\Java\jre1.8.0_121
JDK_HOMEC:\Program Files\Java\jdk1.8.0_121

在一段时间内,Java(TM) 平台 SE 二进制文件从列表中消失了,直到我将密钥更改为适当的版本Open with后,我才能添加它:HKEY_CLASSES_ROOT\jar_auto_file\shell\open\commandregedit.exe

C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe“ "%1"。


java -version以下是在我的电脑上输入的 Windows CMD 的快照:
Windows CMD 中的 java -version


我尝试了以下方法,但没有成功:

  • 重新安装 JRE 和 JDK,
  • 将 .jar 文件与 关联C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe
  • assoc .jar=jarfileftype jarfile="C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe" -jar "%1" %*命令行中使用
  • 创建新的系统环境变量OPENDS_JAVA_ARGS并将其设置为-罐


附加信息:

  • 我使用的是 Windows 7 Professional 64 位(Service Pack 1),并且在我的 PC 和笔记本电脑上都安装了最新更新。
  • 双击运行 .jar 文件曾经工作在我的 PC 上,但前段时间突然停止工作。我没有修改任何与 Java 相关的内容。
  • 我拥有最新版本的 JRE 和 JDK(Java 8 版本 121)。
  • 在我尝试运行的 .jar 文件中,有些是 GUI Swing 应用程序,有些使用 打开系统控制台(如果尚未打开) Runtime.getRuntime().exec(String[])


我已经尝试使用以下链接上的解决方案解决此问题(但没有成功):


笔记:

  • 我不想用 WinRAR 打开 .jar 文件。
  • 我不想通过java -jar jarfile.jar在cmd.exe中运行来打开.jar文件。
  • 我并不是在寻找第三方应用程序来运行.jar 文件。


目前,我正在使用C:\Windows\System32\cmd.exe /k "java -jar C:\path\to\jarfile\Program.jar"快捷方式位置来运行 jar 文件,但我对这个解决方案并不满意,因为这会打开控制台甚至运行 Swing 应用程序。

我问过同样的问题堆栈溢出但有人向我指出超级用户更适合回答这类问题。

答案1

我今天遇到了一个和你遇到同样问题的人。不知怎么的,我设法解决了这个问题,尽管我不确定到底是什么解决了这个问题;我只能告诉你我采取的大致步骤。

使用 regedit,我发现 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 注册表项不一致。HKLM 具有典型的.jar->jarfile设置,指向jarfile正确的路径。HKCU 具有.jar->jar_auto_file关联,指向旧的无效路径。

编辑此路径并没有解决问题。我还尝试将其指向jarfile,但也没有帮助。我稍微调整了assoc一下ftype,看看这是否会唤醒 Windows;我认为反劫持功能以某种方式阻止了 Windows 监听更新后的路径。遗憾的是,它没有起到什么作用。

所以最后我删除了该jar_auto_file条目。这让我感到高兴:Windows 终于意识到菜单中的条目Open With是具有有效路径的条目。(过去选择正确的路径/文件永远不会正确保留。)遗憾的是双击仍然无法使用。但是,只要确保选中“始终使用此程序打开此类型的文件”框并打开它,最终就可以很好地修复关联,使双击再次有效。

答案2

我也遇到了这个问题。解决方案更简单。添加缺少的-jar参数。

转到 HKEY_CLASSES_ROOT\jar_auto_file\shell\open\command 并将默认值设置为:

"C:\Program Files\Java\[...]\java.exe" "-jar" "%1" 

所缺少的只是"-jar"选择。

享受!

答案3

您的 PC 上可能安装了多个 JDK。一些较旧的 JDK 安装程序还会将一些 Java 文件(例如)复制java.exe到文件夹javaw.exeC:\Windows\System32

我遇到了类似的问题,并在互联网上搜索解决方案,但没有任何建议可以通过双击文件来打开.jar

就我而言,原因是我的计算机上安装了多个 JDK 和 JRE 版本。由于我是一名软件开发人员,为不同的客户使用多个不同的版本,因此我需要在我的 PC(Windows 10 Pro)中使用多个 JDK。所以我不想更改系统变量(即JAVA_HOMEJRE_HOMEPATH),而是在我想使用不同版本时使用命令提示符在用户进程中运行 java。

安装 JDK 时,它会将.jar文件关联到我们在 PC 上安装的最新版本。如果右键单击 .jar 图标并选择属性,它将显示该文件以“Java(TM) Platform SE Binary”打开。如果我们查看注册表项:HKEY_CLASSES_ROOT\jarfile\shell\open\command,它将指向最新的 JDK 版本。

每次我想运行从不同版本构建的应用程序时更改注册表项并不是一个好主意(有时很烦人)。

所以在我的情况中,直接双击文件.jar来执行它是不可能的。但我自己找到了一个解决方法。

设想:

该电脑中安装了多个JDK(1.7、1.8、9.0、10.0、11.0、12.0),最新安装的是12.0。

问题

想要双击.jar使用 JDK 1.8 开发的可执行文件,但没有成功

这是我的解决方案:

  1. .jar为您想要打开的文件 创建快捷方式。
  2. 右键单击快捷方式图标并选择属性->快捷方式选项卡
  3. 将目标中的文本更改"D:\Dev\JavaApp1.8.jar"为(例如)

    C:\Program Files\Java\jdk1.8.0\bin\javaw.exe-jarD:\Dev\JavaApp1.8.jar

  4. 然后单击确定双击快捷方式。

现在应该可以打开该应用程序了。

答案4

我在使用 Windows 7 时遇到了同样的问题,我尝试了所有解决方案,但除了命令之外没有任何效果cmd,过了一段时间后发现你需要做的就是从你的计算机中删除所有 Java JDK 和 SE,并删除包含它的文件夹并安装 JDK 8。

这对我有用 - 我尝试了 JDK 11 和 JDK 13,但只有 JDK 8 有效。

相关内容