【问题标题】:Windows, run JAR with double clickWindows,双击运行 JAR
【发布时间】:2019-04-12 04:35:16
【问题描述】:

我是第一次尝试 Java。 我正在使用 Intellij IDEA 并创建一个简单的应用程序。 在 IDE 中它工作正常,然后我创建一个 JAR 工件并像这样运行它: java -jar myappname.jar 没有问题。

现在我想通过在资源管理器中双击它来启动同一个 JAR,但没有任何反应,为什么?

请注意,如果我双击另一个 JAR (sikulixsetup-1.1.3.jar),它会正确启动并显示 gui,所以问题不是 windows 中的类型关联。

我的测试应用没有 gui,但我知道它是否运行正常,因为它使用 Sikulixapi 库自动执行窗口,所以我看看它是否在做某事。

谢谢!

【问题讨论】:

  • 这是因为 jar 不可执行,而是普通的 zip 存档。这就是为什么你必须 java -jar myappname.jar
  • 问题是我的 jar 只能使用 64 位版本的 java 运行,而不是 32,所以我必须将 jar 文件关联到 64 位 java.exe

标签: java jar sikuli sikuli-x


【解决方案1】:

好的,我解决了我的问题。 通常 JAR 运行没有任何问题,只需在 windows 中双击它, 在我的情况下,它没有运行,因为 .jar 文件与 javaw.exe 的 32 位版本相关联,而 JAR 中的代码需要 64 位环境。 将 Windows 中的 .jar 类型关联从 32 位更改为 64 位版本的 javaw.exe 解决了该问题

【讨论】:

    【解决方案2】:

    这是因为jar 不是可执行的二进制文件,而是普通的 zip 存档。操作系统无法执行该操作。这就是为什么您必须使用 java 可执行文件并将存档作为参数传递来运行您的应用程序的原因。

    如果您希望您的应用“可点击”,则必须使用一些包装解决方案,例如 http://launch4j.sourceforge.net/

    【讨论】:

    • 谢谢,我知道,正如我在帖子中所写,我有另一个 JAR,它通过双击正确启动,所以我需要使用 java 或将其转换为 exe 是不正确的,应该有另一种方式。我不确定另一个 jar 是否正在使用双击,因为它有一个 GUI,而我的没有。如果我很好地理解 launch4j 创建一个封装 JAR 的 .exe ,那对我来说可能没问题,但我真的很想了解为什么其他 JAR 正在工作以及如何实现同样的......谢谢
    【解决方案3】:

    更改打开文件时使用的默认程序,从一种 Java 到另一种(32 位到 64 位,反之亦然)。

    【讨论】:

      猜你喜欢
      • 2017-02-14
      • 2020-08-27
      • 2012-01-20
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 2014-09-24
      • 2021-12-26
      • 1970-01-01
      相关资源
      最近更新 更多