4

I've done a search and I can see that a lot of people have had the same problem as me, but none of the solutions have worked for me.

Basically I have a Java Project in Eclipse that is from my old Windows Installation. I've cleaned and rebuilt it because at first it wouldn't compile, but now I have it exported as a Runnable Jar. However, the only way I can get the application to appear is to do java -jar foo.jar in command prompt, or run it in Eclipse. If I double click the JAR in Windows Explorer nothing happens even though I know that Java is associated correctly because other Runnable Jars work.

The project only has the x86 JRE listed in it's Build Path Libraries and all the files listed appear to exist. I'm running Windows 7 HP.

Update: I'm sorry, but I just discovered that no other Runnable Jars are working either. If they are wrapped with launch4j they work though...

Edit: The Runnable Jars that I export from Eclipse do work fine on other systems and load on double click

4

4 回答 4

8

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


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

类型:REG_SZ

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

您当然希望该路径指向您的 javaw.exe,并确保您有其他参数。

于 2013-08-28T19:19:05.700 回答
1

在使用 Spring 工具套件时,我也遇到了同样的问题。

您可以使用以下步骤:-

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

-在我的情况下,我的可运行 jar 仅在我的环境中执行,即我在其上创建了该 JAR。最初,我选择了创建 JAR 的第一个选项,即将所需的库提取到所需的 JAR 中。但这不合适。

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

于 2013-08-20T12:14:33.723 回答
1

由于您能够运行运行命令行的 JAR,我相信您的问题与设置为在双击文件时运行文件的 Java 版本有关。

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

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

您现在应该能够运行 JAR 文件了。如果您的问题仍然存在,请告诉我。

于 2013-08-25T19:00:53.493 回答
-1

我制作了一个罐子并将其保存在桌面上。然后,我双击罐子,它对我来说工作正常。

我如何和我监控的内容:在我的主课中,执行一些操作,最后我添加Thread.sleep(25000);以保持程序片刻。每次双击导出的 jar 后,我发现系统进程树中添加了一个新的javaw.exe 进程。我在任务管理器上注意到了。并在 25000 毫秒后各自的 javaw.exe 进程结束。由于我的应用程序不包含任何 GUI,这就是为什么我没有看到相应进程的任何 GUI 更改。我有信心,如果我的应用程序有一些 GUI,我肯定会在每次运行时获得相应的 GUI 窗口。

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

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

这对我来说很好。我使用了来自不同系统的同一个 jar 并将其保存在不同的位置。

于 2013-08-27T08:51:29.203 回答