JAR文件双击无法打开

8
当我双击jar文件时,GUI程序并没有自动启动。相反,我必须打开命令提示符,然后输入"java -jar abc.jar",才能启动程序。为什么会这样?我需要做些什么来避免这种情况?
是不是我的默认jar文件打开程序有问题?应该使用哪个jar文件打开程序?

只是一个基本问题..你创建了一个包含 'Main-Class:' 的清单文件吗? - Richie
1
@Richie,如果他可以在命令行中启动文件而不提供任何类路径参数,那么这难道不意味着主类已经正确设置了吗? - Johnydep
你解决了吗? - AndreaTaroni86
9个回答

2
也许您想要按照这篇文章中的说明进行操作:在Windows上运行JAR文件
不过请注意,以下语法适用于我的Windows XP: C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe -jar "%1" %

2

如果没有发生任何事情,那么您是否没有收到任何错误消息,比如找不到主类或类似的消息?

我建议检查您的jar文件关联。在命令行上输入:

ftype | find "jarfile"

有时候,即使重置也无法解决问题,需要找到JRE的绝对路径并运行以下命令:
ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*  

这可能会解决您的问题。

好的,我们已经通过控制面板设置了文件关联。我在我的机器上输入这个命令,但是另一个开发人员没有。我的可以工作,他的不行。你怎么纠正这个问题?谢谢。 - Andez
这对我有用。通过控制面板更改文件类型关联没有起作用。我不得不在命令提示符中输入此命令,但是在上面的命令的“jre7”部分之外,我将其替换为我系统上安装的JRE版本。我认为问题发生的原因是我还安装了多个版本的JDK,并且JDK二进制文件不喜欢运行jar文件,尽管它们完全能够做到。安装JDK后,“jarfile”关联可能已更改为JDK二进制文件而不是JRE。 - Eric Townsend

1
如果您的jar文件可以从命令行成功打开,那么它就是正确的,一切都已经就位。现在您需要将正确的程序与之关联。
右键单击该jar文件 -> 选择“打开方式” -> 转到JRE/BIN/javaw.exe -> 确定
现在所有的jar文件都与正确的程序相关联了。现在试试吧!

1
我遇到了同样的问题。在我的情况下,我认为是因为我使用了Scanner(system.in)输入。 默认情况下,Windows使用javaw.exe(感谢Johnydep)打开.jar文件,这是运行时不带终端的java版本。 在我的情况下,运行javaw -jar myJar.jar也无效。 最终,我编写了一个使用常规java.exe的小批处理文件:java -jar myJar.jar。

0
导航至:
文件->导出->Java->Jar文件->下一步->使用树形结构选择要包含在您的jar文件中的文件->下一步->下一步->
现在我猜你可能错过了这部分
在底部的“主类”下点击“浏览”->选择您希望在双击时运行的类->点击确定->完成。

现在应该可以正常工作了。

我在任何地方都找不到这个答案,但它解决了我的问题,我遇到了同样的问题。


0

我在Linux上使用Intellij生成的jar包遇到了同样的问题,后来发现这是权限问题,该jar文件的权限是"-rw-rw-r--",你需要添加执行权限:
$chmod +x xx.jar,然后双击运行。


0

使用哪个操作系统?您需要配置默认应用程序。在KDE中,这在“系统设置” -> “默认应用程序”下进行。对于Gnome、Mac或Windows,您需要搜索以找到设置位置。


0
在Windows上:右键单击jar文件 -> 打开方式 -> 选择程序... -> 选择 "Java (TM) Platform SE binary"。
可选地,勾选 "始终使用所选程序打开此类文件"。

-3
也许是因为你的jar文件不是可执行的,所以你不能直接双击它来执行。

2
如果是这种情况,使用-jar选项从命令行运行会失败。我不是一个投票者,但您可能考虑编辑或删除此帖子以避免更多的负评。 - Andrew Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接