gpt4 book ai didi

java - 我使用从 maven 生成的 jar 通过 install4j 为我的应用程序创建了一个安装程序。为什么执行.exe找不到主类?

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:36 25 4
gpt4 key购买 nike

Here's how I created a jar file using maven.

现在,对于我的 JavaFX 应用程序,我正在使用 afterburner FX 框架。现在我需要为这个应用程序创建一个安装程序以部署到其他设备。我正在使用 Install4j。我的步骤:

  1. mvn clean package
  2. 将生成的 jar 文件复制并粘贴到不同的目录中
  3. 将该目录添加到 install4j 文件
  4. 在 Java 调用下的 Launcher 上,我选择 jar 文件,然后选择我的主类:`BOOT-INF.classes.inc.pabacus.TaskMetrics.TaskMetricsApplication`
  5. 我构建安装程序并运行它,安装到 Program files,然后打开 exe 文件

但是随后会出现一个错误对话框:

java.lang.NoClassDefFoundError: BOOT-INF/classes/inc/pabacus/TaskMetrics/TaskMetricsApplication (wrong name: inc/pabacus/TaskMetrics/TaskMetricsApplication)

最佳答案

所以我做错了两件事:

  1. 最初,就像过去一样,我尝试将 JavaFX 与 Spring Framework 结合使用 - 但未成功。我不再使用 Spring,但我的 pom 文件中仍然有一些剩余的 Spring,这导致它在我将文件打包到 jar 时将文件放在 BOOT-INF 目录中。我只需要删除 Spring 的剩余部分,boot-inf 目录就不见了。

  2. 因此,在 install4j 中,您选择一个目录,该目录将包含您要添加到安装程序中的文件。在教程中,他们有一个单独的 lib 目录,其中包含外部库。所以我认为这就是我所需要的。我通过 Maven 将我的依赖项复制到一个 lib 文件夹中,然后将它们与我的 jar 一起放入一个目录中。这就是我的所有目录 - jar 文件和 lib 文件夹。那是行不通的。我不知道。显然,它需要 all maven 生成的目标文件夹中的文件。我应该只使用目标文件夹本身。

就是这样。我现在已经成功创建了一个安装程序。我真希望没有人像我一样走得那么傻,但如果你也遇到了同样的麻烦,那么......好了。

关于java - 我使用从 maven 生成的 jar 通过 install4j 为我的应用程序创建了一个安装程序。为什么执行.exe找不到主类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com