如何通过双击 Windows 7 64 位来运行 .jar 文件?

Posted

技术标签:

【中文标题】如何通过双击 Windows 7 64 位来运行 .jar 文件?【英文标题】:How to run .jar file by double click on Windows 7 64-bit? 【发布时间】:2012-01-20 14:47:09 【问题描述】:

在命令行中运行 .jar 文件可以正常工作,但我无法通过双击我的 Windows 7 (64) 来运行任何 .jar 文件。双击后似乎没有任何反应。

我尝试了ftype 提示,没有成功:

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

我重新安装了JDK 7 64位,没有成功。

有什么想法吗?

【问题讨论】:

听起来就像你做的一切都是正确的。请看我下面的链接。请确保 1) "c:\Program files\java\jre7\bin\javaw.exe" 是正确的路径,并且 2) 在注册表中的 "HKLM, Software, Java" 下也正确定义了该路径。 ftype 命令也需要以管理员身份运行。 Running Jar file in Windows 的可能重复项 真正的答案是您需要使用像packr 或one-jar 这样的东西来为用户提取和执行您的代码,或者构建到Java 现在正确关联的JNLP 文件。 我自己也有这个问题,所以我创建了一个应用程序来做这件事。它定位 java 安装,运行适当的可执行文件 (JavaW.exe),并将其定向到 JAR 文件。 '真正简单的编码,但也很方便。该链接可以在我下面的评论中找到。 =) ***.com/questions/8511063/… 【参考方案1】:

http://www.wikihow.com/Run-a-.Jar-Java-File

    假设您已经加载了 Java JRE 和/或 Java SDK,那么 要进行关联,请转到“我的电脑”,单击您的一个驱动器(例如C:)。 当它显示时,选择“工具”»»“文件夹选项”(或属性...它位于不同的位置,具体取决于 Windows 版本)。 打开 Windows 资源管理器(只需打开任意文件夹)即可获得“工具”->“文件夹选项”窗口。 出现“文件夹选项”窗口时,单击“文件类型”选项卡。您应该能够编辑或添加 JAR 文件(.jar 扩展名) 更改用于打开 JAR 文件的程序。在文件选择窗口中,进入安装JRE的文件夹(应为C:/Program Files/Java/...,标记“始终打开方式”,然后选择javaw.exe文件。

【讨论】:

【参考方案2】:

右键单击-> 打开方式中列出了什么? 是否有其他程序被列为默认程序?是否列出了 Java 运行时?如果列出了 Java 运行时,您可以使用它打开,并将其设置为运行的默认程序。

即,

右键单击 -> 属性 -> 更改 -> C:\Program Files\Java\jre7\bin\javaw.exe

【讨论】:

这在 java 8 中似乎不起作用。到目前为止,我唯一的成功是从命令行运行:java.exe -jar myFile.jar 这里相同 - 双击与 javaw 关联的文件不会产生任何结果。在命令行上手动运行有效。我猜关联的没有放在-jar 中? 可以通过使用外部脚本(BATch 文件或可执行文件)实现双击功能。我只编译了这样一个可执行文件以在我的机器上使用,因为 Windows 10 似乎也忽略了关联的 JAR 文件。请参阅以下评论:***.com/questions/8511063/… 所以你是说它不可能只是双击一个 JAR 来工作?没有 BATch 文件或 EXE?【参考方案3】:

对于 Windows 7:

    启动“控制面板” 点击“默认程序” 单击“将文件类型或协议与特定程序相关联” 双击.jar 浏览C:\Program Files\Java\jre7\bin\javaw.exe 点击打开按钮 点击确定按钮

【讨论】:

对于 Windows 7 或 8 64 位:步骤 5:C:\Program Files (x86)\Java\jre7\bin\javaw.exe 这听起来可能很愚蠢,但如果列表中没有出现“.jar”(第 4 步)可能会出现什么问题? @Vaughany - 看我的回答。 这对我不起作用。我正在运行 Windows 7 64,并且刚刚重新安装了 java jdk1.7.0_45。如果我打开命令提示符并运行 java -jar filename.jar,它运行正常,但将 jar 文件关联到 javaw、java 或 javaws 都失败,没有错误消息。 我自己也有这个问题,所以我创建了一个应用程序来做这件事。它定位 java 安装,运行适当的可执行文件 (JavaW.exe),并将其定向到 JAR 文件。 '真正简单的编码,但也很方便。该链接可以在我下面的评论中找到。 =) ***.com/questions/8511063/…【参考方案4】:

我遇到了同样的问题,即双击无法打开 .jar 文件。结果我安装了两个版本的 Java(Java 6 和 7)。从控制面板卸载 Java 6 -> 卸载程序最终允许在不使用命令窗口的情况下双击打开 .jar 文件。

【讨论】:

完全正确,它发生在我身上,在我阅读了您的解决方案后它再次起作用【参考方案5】:

您也可以从Command Prompt (cmd) 运行它:

java.exe -jar file.jar

【讨论】:

【参考方案6】:

如果你尝试unpopular's answer:

对于 Windows 7:

    启动“控制面板” 点击“默认程序” 单击“将文件类型或协议与特定程序相关联” 双击.jar 浏览C:\Program Files\Java\jre7\bin\javaw.exe 点击打开按钮 点击确定按钮

而 jar 文件仍然无法打开(在我的情况下,就像我从未双击过一样): 打开命令提示符(启用管理员权限以确保安全)并输入以下命令:

java -version 这应该返回一个版本,这样您就可以放心地假定 java 已安装。

然后运行

java -jar "PATHTOFILE\FILENAME.JAR"

通读生成的输出。您可能会发现一条错误消息。

【讨论】:

对于 XP,我该怎么办? 在我的情况下它不会改变任何东西,只是回到 system32【参考方案7】:

Installing 最新的 JRE 为我解决了这个问题。

(即使我之前安装了 JDK 和 JRE。)

【讨论】:

【参考方案8】:

您的问题也可能在您的 Java 代码设置中,我的意思是,如果您的程序无法实现主类/主文件(入口点),它将不会启动程序/ .jar(特别是基于 IDE 构建的应用程序)。在 IDE 上解决这个问题:

右键项目>属性>运行>浏览主类>确定。 清理并重建

现在尝试运行它。希望对你有帮助

【讨论】:

【参考方案9】:

如果您之前使用过右键单击并使用 \path\to\your\javaw.exe 打开,那么您将需要删除以下注册表项。

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar]

然后运行

C:\>assoc .jar=jarfile
C:\>ftype jarfile="C:\path\to\your\javaw.exe" -jar "%1" %*

【讨论】:

我使用 ftype jarfile="C:\path\to\your\java.exe" -jar "%1" %* 使其工作。 @Shifatullah afaik 的唯一区别是 java 链接到控制台,而 javaw 没有【参考方案10】:

这不是文件关联问题,因为您可以通过命令行正确启动应用程序。

问题在于,当您双击关联文件时,应用程序会启动并以该文件的路径作为基本执行路径运行。任何相对路径都将从文件路径中计算出来,您尝试加载的所有内容都可能丢失。

即使你用 try/catch(Exception) 包围你的所有入口点代码也不会发生任何事情,因为 java 会抛出 Throwables 而不是异常:要在你的 java 入口点中解决这个问题,用 try 包围 main 方法的内容/catch(Throwable)(异常和错误的基类)和调试。

【讨论】:

【参考方案11】:

我遇到了 Windows 阻止它运行的问题(Windows 10 Pro)。右键单击图标>属性>在右下角它可能会告诉您“Windows已阻止该功能........”旁边有一个标有“取消阻止”的复选框>取消选中该框>应用>选项阻止消失,然后你可以运行它。

【讨论】:

【参考方案12】:

我为此创建了一个项目 JAR_Runnr。 =)

http://projects.killerapplets.com/JAR_Runner/

【讨论】:

【参考方案13】:

将 JAR 文件的默认应用程序从 JAVA_HOME/bin 文件夹中的 java.exe 更改为 javaw.exe。

这是因为,java.exe 只是控制台应用程序,但 JAR 文件需要一个窗口渲染执行。由于 javaw.exe 是一个窗口应用程序,因此首选用于执行 JAR 文件。

对此的替代方法是,在某种程度上,您可以使用命令提示符运行 JAR 文件,只需使用带有 -jar 属性的 java 关键字。

【讨论】:

【参考方案14】:

这是我的方式:

    创建文件bat(例如openJar.bat)。

    @echo off
    start javaw -jar "%1" %*
    exit
    

    剪切并粘贴到 C:\Program Files\Java\\bin(这一步是不必要的,但你应该这样做)。

    右键单击 jar 文件 > 属性 > 选择使用(更改按钮)打开并选择您的文件 bat. 双击您的 jar 文件进行测试。

【讨论】:

【参考方案15】:

必须试试这个:

    以管理员身份打开命令提示符 使用cd 命令移动到文件夹 输入java.exe -jar *filename*.jar 按回车

应用程序应该会在此之后立即弹出。

【讨论】:

【参考方案16】:

我尝试了上述所有步骤来解决问题,但没有任何效果。我已经安装了 JDK 和 JRE。

在我的例子中,一个 jar 文件被双击打开,而另一个没有被打开。我检查了这些文件,可能的原因是正在打开的文件是使用 JAVA SE 6 创建的,而未打开的文件是使用 JAVA SE 7 创建的。虽然,有问题的 jar 文件是通过命令提示符运行的(java -jar myfile.jar)。

我尝试右键单击 -> 属性 -> 在 JDK\bin 目录和 JRE\bin 目录中更改为 javaw.exe。

我终于能够通过在注册表编辑器中更改 javaw.exe 路径(从 JDK\bin 到 JRE\bin)来解决问题。

转到HKEY_CLASSES_ROOT\jarfile\shell\open\command,值为,

"C:\Program Files\Java\jdk-11.0.1\bin\javaw.exe" -jar "%1" %*

我改成,

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

它奏效了。现在可以双击打开jar文件了。

【讨论】:

这应该是公认的答案。在 Windows 10 中,没有其他答案对我有用。但它们可能在 Windows 7 中有效。 这对我有用。其他方法都不起作用。注册表中的这个键有一些旧版本的 Java,它会阻止通过双击文件打开 Jar。 我在 Windows 10 中的关联是 HKEY_CLASSES_ROOT\.jar_auto_file\shell\open\command 并使用了"C:\dev\openjdk11\bin\javaw.exe" -jar "%1" 更改 jarfile 的值在 Win7 上不起作用。照@bjmi 所说的去做。立即更改 jar_auto_file 的值。【参考方案17】:

我遇到了同样的问题,并在互联网上搜索了解决方案,但双击 .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 文件来执行它。但相反,我自己找到了解决方案。

场景:

PC 中安装了多个 JDK(1.7、1.8、9.0、10.0、11.0 和 12.0),因此最新安装的是 12.0。

问题

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

这是我的解决方案:

    为您要打开的.jar 文件创建一个快捷方式。 右键单击快捷方式图标并选择属性->快捷方式选项卡

    更改目标中的文本(例如"D:\Dev\JavaApp1.8.jar") 到

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

    然后点击ok双击快捷方式。

它现在应该会打开应用程序。

【讨论】:

【参考方案18】:

我遇到了同样的问题: 如果我双击一个 jar 可执行文件,但我的 Java 应用程序没有启动。

因此尝试手动更改注册表项,但这对我没有帮助。尝试重新安装较新/较旧的 JDK,但没有任何结果。 (我有几个 Java 版本)

我只使用 jarfix 程序解决了它。 Jarfix 自动修复了 Windows 系统上的 .jar 关联问题。 (检查注册表:PC\HKEY_CLASSES_ROOT\jarfile\shell\open\command

Johann Nepomuk Löfflmann 怎么说:

上述问题的根本原因是程序窃取了 .jar 关联。如果您已安装 Java 运行时环境 第一次,将名为“jar”的文件类型分配给 javaw.exe 正确。 "jar" 是 "java archive" 和 javaw.exe 的缩写 是执行 .jar 的正确程序。但是,在 Windows 上任何 程序可以随时窃取文件类型,即使它已经 与程序相关联。许多 zip/unzip 程序更喜欢这样做, 因为 jar 以 .zip 格式存储。如果你双击一个 .jar,你的包程序打开文件,而不是 javaw 运行 程序,因为你的包程序忽略了元信息 也存储在 .jar 中。在 Oracle 错误数据库中有 低优先级报告 4912211“添加机制来恢复被劫持的 .jar 和 .jnlp 文件扩展名”,但它已被关闭为“关闭,将 不修复”。

如果您使用的是 免费的 OpenJDK,无需安装程序。

注意: 我的操作系统是 Windows 10,但是 7、8 等的逻辑都是一样的。

有用的链接:https://windowsreport.com/jar-files-not-opening-windows-10/ https://johann.loefflmann.net/en/software/jarfix/index.html

【讨论】:

以上是关于如何通过双击 Windows 7 64 位来运行 .jar 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows 7安装Python2.7

如何通过双击Windows XP中的html文件等任何文件夹来运行php文件?

如何编译 32 位程序并在 Windows 7 等 64 位操作系统上运行?

双击时如何使Windows批处理文件暂停?

windows 安装ipython

64位版本的windows怎么兼容16位的应用程序