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


77

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

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

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

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

任何的想法?


1
听起来像你做的一切权利。请在下面查看我的链接。并且请确保1)“ c:\ Program Files \ java \ jre7 \ bin \ javaw.exe”是正确的路径,并且2)在注册表中的“ HKLM,软件,Java”下也正确定义了该路径。
paulsm4 2011年

ftype命令还需要以管理员身份运行。
Brian Minton


真正的答案是,您需要使用诸如packrone-jar之类的东西来为用户提取并执行您的代码,或者构建为Java现在可以正确关联的JNLP文件。
EntangledLoops 2015年

我自己遇到了问题,因此我创建了一个应用程序来执行此操作。它找到Java安装,运行适当的可执行文件(JavaW.exe),并将其定向到JAR文件。``真正简单的编码也非常方便。该链接可以在下面的我的评论中找到。=)stackoverflow.com/questions/8511063/…–
BoyBlueSky

Answers:


38

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

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

37
这似乎在Java 8中不起作用。到目前为止,我唯一的成功是从命令行运行:java.exe -jar myFile.jar
Assimilater

10
此处相同-双击与javaw关联的文件不会产生任何结果。手动在命令行上运行是可行的。我想相关联的命令没有放在-jar?中。
Nick.McDermaid '16

通过使用外部脚本(BATch文件或EXEcutable),可以实现双击功能。由于Windows 10似乎也忽略了关联的JAR文件,因此我只在计算机上编译了这样的可执行文件。看到以下评论:stackoverflow.com/questions/8511063/…–
BoyBlueSky

因此,您是说不可能双击JAR使其起作用?没有BATch文件或EXE?
White_King

41

如果以前使用过右键单击并使用\ 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" %*

3
我使用ftype jarfile =“ C:\ path \ to \ your \ java.exe” -jar“%1”%*使其正常工作。
大米

@Shifatullah唯一的不同之处是java链接到控制台,而javaw不是
17slim


16

对于Windows 7:

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

4
对于Windows 7或8 64位:步骤5:C:\ Program Files(x86)\ Java \ jre7 \ bin \ javaw.exe
Math

2
这听起来很愚蠢,但是如果“ .jar”没有出现在列表中(步骤4),可能是什么问题?
Vaughany

@Vaughany-看看我的回答。
P.Brian.Mackey

7
这对我不起作用。我正在运行Windows 7 64,并且刚刚重新安装了Java jdk1.7.0_45。如果我打开命令提示符并运行java -jar filename.jar,它可以正常运行,但是将jar文件与javaw,java或javaws关联都失败,并且没有错误消息。
詹姆斯,

自己遇到问题后,我创建了一个应用程序来执行此操作。它找到Java安装,运行适当的可执行文件(JavaW.exe),并将其定向到JAR文件。``真正简单的编码也非常方便。该链接可以在下面的我的评论中找到。=)stackoverflow.com/questions/8511063/…–
BoyBlueSky

14

如果您尝试不受欢迎的答案

对于Windows 7:

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

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

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

然后跑

java -jar "PATHTOFILE\FILENAME.JAR"

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


对于XP,我该怎么办?

就我而言,它什么也没改变,只能回到system32
Rayan Suryadikara,2016年

11

我尝试了上述所有步骤来解决问题,但没有任何效果。我已经安装了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文件。


2
这应该是公认的答案。在Windows 10中,没有其他答案对我有用。但是,在Windows 7中,它们可能也起作用。
Jose Manuel Ferreira Benavides

1
这对我有用。其他方法均无效。注册表中的此项具有Java的某些旧版本,该版本无法通过双击文件来打开Jar。
anacron

1
我在Windows 10中的关联是HKEY_CLASSES_ROOT \ .jar_auto_file \ shell \ open \ command并使用"C:\dev\openjdk11\bin\javaw.exe" -jar "%1"
bjmi

6

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


没错,这发生在我身上,在我阅读了您的解决方案后,它再次起作用
Yahya

2

这是我的方式:

  1. 创建文件bat(示例openJar.bat)。

    @echo off
    start javaw -jar "%1" %*
    exit
    
  2. 将其剪切并粘贴到C:\ Program Files \ Java \\ bin(此步骤是不必要的,但您应该这样做)。

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

2

我遇到过同样的问题: 如果我双击jar可执行文件,并且Java应用程序无法启动。

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

而且我仅使用jarfix程序解决了该问题。Jarfix会自动修复Windows系统上的.jar关联问题。(检查regedit:PC\HKEY_CLASSES_ROOT\jarfile\shell\open\command

约翰·内波穆克·洛夫曼怎么说:

上面问题的根本原因是程序盗用了.jar关联。如果您是第一次安装Java Runtime Environment,则将名为“ jar”的文件类型正确分配给javaw.exe。“ jar”是“ java archive”的缩写,而javaw.exe是执行.jar的正确程序。但是,在Windows上,任何程序都可以随时窃取文件类型,即使该文件类型已与该程序关联。许多zip / unzip程序更喜欢这样做,因为jar以.zip格式存储。如果双击.jar,则打包程序将打开文件,而不是javaw运行该程序,因为打包程序将忽略也存储在.jar中的元信息。在Oracle错误数据库中,低优先级报告4912211“

如果使用的是没有安装程序的免费OpenJDK,则您也可能会错过与.jar的文件连接。

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

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


1

您的问题也可能在Java代码设置内,我的意思是,如果您的程序某种程度上无法实现主类/主文件(入口点),它将无法启动program / .jar(特别是基于IDE的应用程序)。要在IDE上解决该问题:

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

现在尝试运行它。希望能帮助到你


1

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


1

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

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

一种替代方法是,在某种程度上,您可以通过简单地将Java关键字与-jar attrib一起使用来使用命令提示符来运行JAR文件。


1

不得不尝试这个:

  1. 以管理员身份打开命令提示符
  2. 使用cd命令移至文件夹
  3. 类型 java.exe -jar *filename*.jar
  4. 按回车

该应用程序应立即弹出。


0

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

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


0

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

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

即使您用try / catch(Exception)包围了所有入口点代码,也没有任何反应,因为java抛出Throwables而不是Exceptions:要解决此问题,请在Java入口点中用try / catch( Throwable)(异常和错误的基类)和调试。



0

我遇到了同样的问题,并在互联网上搜索了一个解决方案,但没有通过双击鼠标未打开任何建议 .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。

问题

想要双击.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. 然后单击确定。双击快捷方式。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.