最近我在NetBeans中开发了一个相当简单的GUI应用程序,在我进一步开发之前,我决定在另一台计算机上测试该应用程序,因为我不太了解分发应用程序并希望确保我是做得对。
在NetBeans中,它运行正常,当我单击Run-> Clean and Build Project时,它会在我项目的dist文件夹中按预期创建.jar文件。当我从dist文件夹运行计算机上的.jar文件时,它按预期运行。
然后我尝试在另一台计算机上(从闪存驱动器)以不同的方式运行它,但没有一个工作:
仅将jar文件复制到我的闪存驱动器,尝试运行它,收到错误消息“无法找到主类:MyApplicationPackage.MyApplication。程序将退出。”
在NetBeans中单击了文件 - >导出项目 - >到Zip ...并将压缩文件夹复制到我的闪存驱动器。当我在另一台计算机上解压缩文件时,没有dist文件夹(我真的没想到会有一个文件夹)。
将整个项目文件夹复制到我的闪存驱动器上,并尝试在另一台计算机上运行jar文件,生成相同的错误消息。
如何让它在其他计算机上运行?是否有更简单的方式来分发应用程序?我不希望普通人知道如何解压缩文件,找到dist文件夹,然后运行jar文件。我能以某种方式将所有内容组合成一个可运行的文件吗?
编辑:我自己找到了解决方案:另一台计算机上的java版本不是当前版本。为了使应用程序运行,我打开了项目的属性窗口,在“Sources”选项卡下,底部附近有一个选项,显示“Source / Binary Format”。将其更改为早期版本的Java,使其在另一台计算机上运行。另一个(也是更好的)选择是在另一台计算机上升级到当前版本的Java。答案 0 :(得分: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>
编辑: