0

最近,我在 NetBeans 中开发了一个相当简单的 GUI 应用程序,在进一步开发之前,我决定在另一台计算机上测试该应用程序,因为我不太了解分发应用程序并想确保我做对了.

在 NetBeans 中它运行良好,当我单击 Run->Clean and Build Project 时,它会按预期在我的项目的 dist 文件夹中创建 .jar 文件。当我从 dist 文件夹在我的计算机上运行 .jar 文件时,它会按预期运行。

然后我尝试在另一台计算机(从闪存驱动器)上以几种不同的方式运行它,但都没有奏效:

  1. 仅将 jar 文件复制到我的闪存驱动器,尝试运行它,收到错误消息“找不到主类:MyApplicationPackage.MyApplication。程序将退出。”

  2. 在 NetBeans 中单击 File->Export Project->To Zip... 并将压缩文件夹复制到我的闪存驱动器。当我在另一台计算机上解压缩文件时,没有 dist 文件夹(我没想到会有一个)。

  3. 将整个项目文件夹复制到我的闪存驱动器上,并尝试在另一台计算机上运行 jar 文件,生成相同的错误消息。

如何让它在其他计算机上运行?有没有更简单的方法来分发应用程序?我不希望普通人知道如何解压缩文件、找到 dist 文件夹并运行 jar 文件。我可以以某种方式将所有内容组合成一个可运行的文件吗?

编辑:我自己找到了解决方案:另一台计算机上的 java 版本不是当前版本。为了让应用程序运行,我打开了项目的属性窗口,在“源”选项卡下,底部附近有一个选项,上面写着“源/二进制格式”。将其更改为早期版本的 Java 使其可以在另一台计算机上运行。另一个(更好的)选择是在另一台计算机上升级到当前版本的 Java。

4

1 回答 1

1

您必须检查是否有一个 MANIFEST 文件来指示主类的位置。

如果您使用的是 maven,则可以使用程序集插件,它将使用您指定的参数生成您的 MANIFEST 文件。

<plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
                <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                        <manifest>
                                <addClasspath>true</addClasspath>
                                <mainClass>com.blabla.Main</mainClass>
                        </manifest>
                        <manifestEntries>
                                <SplashScreen-Image>splashscreen.png</SplashScreen-Image>
                        </manifestEntries>
                </archive>
        </configuration>

</plugin>

编辑:

于 2012-11-15T14:09:53.500 回答