Java应用程序将从CMD和Eclipse运行,但不能双击

我已经做了search,我可以看到很多人和我有同样的问题,但是没有一个解决scheme为我工作。

基本上我在Eclipse中有一个来自我的旧Windows安装的Java项目。 我已经清理并重build了它,因为一开始它不会编译,但是现在我已经将它导出为Runnable Jar。 但是,我可以使应用程序出现的唯一方法是在命令提示符下执行java -jar foo.jar ,或者在Eclipse中运行它。 如果我在Windows资源pipe理器中双击JAR,即使我知道Java是正确关联的,因为其他Runnable Jar也能正常工作。

该项目只有x86 JRE列在Build Path Libraries中,列出的所有文件似乎都存在。 我正在运行Windows 7 HP。

更新 :我很抱歉,但我刚刚发现,没有其他Runnablejar正在工作。 如果他们用launch4j包装他们虽然工作…

编辑 :我从Eclipse中导出的Runnable Jars在其他系统上工作正常,并双击加载

一些注册表值或文件关联可能会搞砸了。 清除所有现有的JRE和JDK并重新安装它们可以解决您的问题。


或者,您可以通过在此处手动编辑注册表值来修复它: HKLM > SOFTWARE > Classes > jarfile > shell > open > command我的值是

类型: REG_SZ

数据: "C:\Program Files\Java\jre8\bin\javaw.exe" -jar "%1" %*

你当然想要这个路径指向你的javaw.exe,并确保你有额外的参数。

在使用Spring工具套件时,我也面临同样的问题。

您可以使用以下步骤:

  • 右键点击项目 – >导出 – >运行jar文件 – >(这里,在库处理中,有三个选项,你必须选择中间的一个,即将所需的库包装到生成的jar中,它也会封装外部依赖)。

在我的情况下,我的可运行jar只在我的环境中执行,即我已经创建了这个JAR。 最初,我已经选择了第一个选项来创建JAR,即将所需的库提取到所需的JAR中,但这是不正确的。

它可以帮助你。让我正确的,如果我错了。

由于您可以运行运行命令行的JAR,所以我相信您的问题与双击Java时将哪个版本的Java设置为运行该文件相关。

要从命令行找出哪个版本成功运行该文件,并将其设置为默认打开JAR文件:

  1. 打开一个新的命令提示符窗口。
  2. 运行echo %path% 。 在路径值中,您应该能够找到一个指向已安装版本的Java的bin文件夹的路径值。 在某处复制此路径。
  3. 导航到您想要运行的JAR文件。 右键单击JAR – >打开方式 – >选择默认程序… – >浏览…
  4. 浏览到您在步骤2中复制的路径(最简单的方法是将其粘贴到地址栏中)
  5. 双击javaw.exe。
  6. 点击OK。

您现在应该能够运行JAR文件。 请让我知道如果你的问题依然存在。

我已经做了一个罐子,并保持在桌面上。然后,我双击罐子,它为我工作的很好。

我如何和我有什么monintored:在我的主类,执行一些操作,最后我添加Thread.sleep(25000); 暂时搁置这个项目。 每双击导出的jar之后,我发现在系统进程树添加了一个新的javaw.exe进程 。 我已经注意到它在任务管理器。 并在25000ms之后,相应的javaw.exe进程结束。 由于我的应用程序没有共同拥有任何GUI,所以我没有看到相应进程的任何GUI更改。 我很自信,如果我的应用程序有一些图形用户界面,我一定会在每次运行时获得相应的GUI窗口。

常见的错误:当我们从Eclipse中导出项目作为Runnable JAR文件时,会导出选定的Eclipse启动配置和Eclipse特定的启动包装。 现在,如果配置不匹配,当你试图通过双击运行它,你将无法看到错误,如果你从CMD运行它,那么你肯定会得到错误日志。

要创建标准的可执行JAR文件:要创建标准的可执行JAR文件,可以导出为JAR文件,并在向导的最后一个屏幕中指定主类

这对我很好。 我使用了来自不同系统的同一个罐子,并保持不同的位置。

这里真的很愚蠢的想法..

你有没有试过用(java.exe或javaw.exe)提升打开.jar的权限?

右键点击程序 – >属性 – >兼容性选项卡 – >检查底部的“以管理员身份运行这个程序”按钮。

有可能你的命令窗口有提升的权限,可能会让它运行。