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

Java 我使用maven生成的jar通过install4j为我的应用程序创建了一个安装程序。为什么在执行.exe时找不到主类?,java,maven,javafx,installation,install4j,Java,Maven,Javafx,Installation,Install4j,​ 现在,对于我的JavaFX应用程序,我使用的是afterburner FX框架。现在我需要为这个应用程序创建一个安装程序,以便部署到其他设备上。我正在使用Install4j。我的步骤: 清洁包装 将生成的jar文件复制并粘贴到其他目录中 将该目录添加到install4j文件中 在Java调用下的Launcher上,我选择jar文件,然后选择我的主类:`BOOT-INF.classes.inc.pabacus.TaskMetrics.TaskMetricsApplication` 我构建并运行

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

清洁包装 将生成的jar文件复制并粘贴到其他目录中 将该目录添加到install4j文件中 在Java调用下的Launcher上,我选择jar文件,然后选择我的主类:`BOOT-INF.classes.inc.pabacus.TaskMetrics.TaskMetricsApplication` 我构建并运行安装程序,安装到程序文件,然后打开exe文件 但随后会出现一个错误对话框:

java.lang.NoClassDefFoundError:BOOT-INF/classes/inc/pabacus/TaskMetrics/TaskMetrics应用程序错误名称:inc/pabacus/TaskMetrics/TaskMetrics应用程序


您似乎已经配置了

BOOT-INF.classes.inc.pabacus.TaskMetrics
当正确的包名为

inc.pabacus.TaskMetrics.TaskMetricsApplication

或者,启动器的VM参数配置不正确,并且包含可以在主类中解释的文本。

所以我做错了两件事:

最初,就像很久以前一样,我尝试在Spring框架中使用JavaFX,但没有成功。我不再使用Spring,但我的pom文件中仍然有一些剩余的Spring,这导致我将其打包到jar时,它将这些文件放在BOOT-INF目录中。我只需删除Spring的剩余内容,启动inf目录就不见了

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


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

在install4j向导中,我被要求从主要类列表中进行选择。我只有BOOT-INF.classes.inc.pabacus.TaskMetrics。我找不到任何inc.pabacus.TaskMetrics.TaskMetrics应用程序。尽管我稍后会尝试,如果它能在我刚键入时起作用的话。启动程序的VM参数配置不正确,并且包含可以在主类中解释的文本。在install4j运行期间,我实际上没有添加任何VM参数配置。然后,您错误地配置了类路径,如果它是包含类文件的目录,则必须使用根包选择目录,这是inc的父目录。您必须使用根包选择目录抱歉,我没有完全理解。我选择了Install4JJ启动程序部分Java调用部分显示的任何选项。如果您可以将任何目录添加到类路径中,您必须根据类路径选择正确的目录。这是我第一次开始悬赏,因此我只是对此进行评论以防万一。我在自己找到答案之前就开始了悬赏。