【问题标题】:Can't open .jar using double-click, only with cmd无法使用双击打开.jar,只能使用cmd
【发布时间】:2015-08-12 23:43:28
【问题描述】:

我使用 Eclipse Indigo 制作了一个非常简单的程序,并将其作为可执行 jar 导出到我的桌面。如果我使用命令“java -jar SayHello.jar”,程序会运行,但是如果我在桌面上双击 SayHello.jar,我的鼠标会转动滚轮,看起来好像它正在加载一些东西,但随后滚轮会转动离开,什么都没有发生。每个 jar 文件都会发生这种情况,而不仅仅是这个。我已经搜索了几个小时来解决这个问题,但没有任何效果。任何帮助将不胜感激。谢谢!

【问题讨论】:

  • .jar 文件不是可执行文件,它们更接近于.zip 文件。您需要将其包装在可执行文件中或编写批处理文件以在运行时执行java -jar SayHello.jar
  • 这是一个操作系统问题...文件扩展名关联
  • 如果需要反编译jar文件,看看这个jd.benow.ca
  • 感谢您的回答。如何将 .jar 包装在可执行文件中或编写批处理文件以在运行时执行命令?如果我将此文件发送给某人,哪一个对某人更方便?

标签: java eclipse jar


【解决方案1】:

对于Java Windows(您实际上并未指定)双击.jar 文件时的默认操作是使用javaw JVM 运行它,即“GUI”模式和代码写入System.out 的任何内容都将被丢弃。 java JVM 确实会输出到控制台窗口,但如果该窗口是通过双击创建的,则它会在代码退出后立即消失,正如您所发现的。

注意.jar(在HKCR\jarfile\shell\open\command中)的“关联”必须是

"(YOUR_JREDIR_usually_progfiles-arch-jre-version)\bin\javaw.exe" -jar "%1" %*

java.exe 用于控制台,在任何一种情况下 -jar。我不相信控制面板会正确设置这样的额外标志参数,这会导致“找不到主类”。

一个有行的批处理文件java -jar myjar然后pause双击应该运行类,当它退出时等到你按任意键再销毁窗口。您可以改为使用timeout numseconds 来限制等待。

添加:Double Clicking JAR file does not open Command Prompt 有另一种方法可以防止控制台窗口消失:使用 cmd /s /k 而不是批处理文件。

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2013-04-25
    • 2011-11-11
    • 2016-05-03
    相关资源
    最近更新 更多