在命令行中运行.jar文件工作正常,但我无法通过双击Windows 7(64)运行任何.jar文件。双击后似乎没有任何反应。
我尝试了ftype
提示,但没有成功:
ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
我重新安装了64位JDK 7,但没有成功。
有什么想法吗?
答案 0 :(得分:41)
右键单击 - >中列出的内容打开用 ? 是否有其他程序列为默认程序?是否列出了Java运行时?如果列出了Java Runtime,则可以使用它运行,并使其成为运行的默认程序。
即
Right Click -> Properties -> Change -> C:\Program Files\Java\jre7\bin\javaw.exe
答案 1 :(得分:27)
如果您之前使用过右键并使用\ path \打开\ 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" %*
答案 2 :(得分:18)
您也可以从Command Prompt (cmd):
运行它java.exe -jar file.jar
答案 3 :(得分:15)
对于Windows 7:
.jar
C:\Program Files\Java\jre7\bin\javaw.exe
答案 4 :(得分:14)
如果您尝试unpopular's answer:
对于Windows 7:
- 启动“控制面板”
- 点击“默认程序”
- 单击“将文件类型或协议与特定程序关联”
- 双击
.jar
- 浏览
C:\Program Files\Java\jre7\bin\javaw.exe
- 点击按钮打开
- 单击确定
按钮 醇>
jar文件仍无法打开(在我的情况下就像我从未双击过):
打开命令提示符(为了安全,启用管理员权限)并键入以下命令:
java -version
这应该返回一个版本,这样你就可以安全地假设安装了java。
然后运行
java -jar "PATHTOFILE\FILENAME.JAR"
通读生成的输出。您可能会发现错误消息。
答案 5 :(得分:6)
我遇到了同样的问题。双击时无法打开.jar文件。原来我安装了两个版本的Java(Java 6和7)。从控制面板卸载Java 6 - >卸载程序最终允许.jar文件在不使用命令窗口的情况下双击打开。
答案 6 :(得分:2)
我尝试了上述所有步骤来解决问题,但没有任何效果。我已经安装了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文件。
答案 7 :(得分:1)
我遇到了阻止Windows运行的问题(Windows 10 Pro)。右键单击图标>性状>在右下角,它可能会告诉你" Windows已阻止功能........"旁边有一个标有" Unblock">的复选框。取消选中该框>应用>阻止选项消失然后你可以运行它。
答案 8 :(得分:1)
这是我的方式:
创建文件bat(例如openJar.bat)。
@echo off
start javaw -jar "%1" %*
exit
剪切并粘贴到C:\ Program Files \ Java \\ bin(此步骤是不必要的,但您应该这样做)。
答案 9 :(得分:1)
将JAR文件的默认应用程序从java.exe更改为JAVA_HOME / bin文件夹中的javaw.exe。
这是因为,java.exe只是控制台应用程序,但JAR文件需要窗口渲染执行。由于javaw.exe是一个窗口应用程序,因此首选执行JAR文件。
另一种方法是,在某种程度上,只需使用 java 关键字 -jar attrib即可使用命令提示符来运行JAR文件。
答案 10 :(得分:0)
我遇到了同样的问题: 如果我双击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运行 程序,因为您的pack程序会忽略其中的元信息 也存储在.jar中。在Oracle错误数据库中, 低优先级报告4912211“添加机制以还原被劫持的.jar 和.jnlp文件扩展名”,但已被关闭为“已关闭,请 无法修复”。
如果您使用的是.jar,也可能会丢失与.jar的文件连接 免费的OpenJDK,无需安装程序。
通知: 我的操作系统是Windows 10,但是7、8等的逻辑相同。
有用的链接:
https://windowsreport.com/jar-files-not-opening-windows-10/
https://johann.loefflmann.net/en/software/jarfix/index.html
答案 11 :(得分:0)
查看此链接 http://ostermiller.org/opening_jar_files.html 可能你没有安装运行时,或者你的系统没有用JAVA打开.jar文件
答案 12 :(得分:0)
我遇到了同样的问题,并在互联网上搜索了解决方案,双击.jar
文件并没有打开所有建议。
就我而言,原因是我的计算机上安装了多个JDK和JRE版本。由于我是一位软件开发人员,为不同的客户端使用多个不同的版本,因此我需要在PC(Windows 10 Pro)中使用多个JDK。因此,我不想更改系统变量(即JAVA_HOME
,JRE_HOME
或PATH
),而是在需要使用其他版本时使用命令提示符在用户进程中运行Java。
在安装JDK时,它将注册.jar
文件与我们在PC中安装的最新版本的文件关联。如果右键单击.jar图标并选择属性,它将显示该文件使用“ Java(TM)平台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
”
然后单击“确定”。双击快捷方式。
它现在应该打开该应用程序。
答案 13 :(得分:0)
必须尝试:
cd
命令移至文件夹java.exe -jar *filename*.jar
此后应立即弹出应用。
答案 14 :(得分:0)
我正是为了这个而创建了一个项目JAR_Runnr。 =)
答案 15 :(得分:0)
这不是文件关联问题,因为您可以通过命令行正确启动应用程序。
问题是当您双击应用程序启动的关联文件并以文件路径作为基本执行路径运行时。任何相对路径都将从文件路径计算,您尝试加载的所有内容都可能会丢失。
没有任何事情发生,即使你用try / catch(Exception)包围所有入口点代码,因为java抛出Throwables而不是Exceptions:在你的java入口点修复这个问题,然后试试主要方法的内容/ catch(Throwable)(异常和错误的基类)和调试。
答案 16 :(得分:0)
你的问题也可能在你的Java代码设置中,我的意思是,如果你的程序以某种方式无法实现主类/主文件(入口点),它将无法启动程序/ .jar(特别是在IDE上构建的应用程序)。要在IDE上解决这个问题:
立即尝试运行它。希望它有所帮助
答案 17 :(得分:0)
Installing最新的JRE为我解决了这个问题。
(即使我之前安装了JDK和JRE。)
答案 18 :(得分:0)
http://www.wikihow.com/Run-a-.Jar-Java-File
C:
)。.jar
扩展名)C:/Program Files/Java/...
,标记为“始终打开”,然后选择javaw.exe
文件。