无法从 Java Swing 应用成功创建可执行 jar

Cannot create executable jar from Java Swing app successfully

我制作了一个 Java Swing 应用程序,现在我想将其导出为可执行 jar 文件。我在 Eclipse 中创建了该应用程序,它具有以下结构:

其中文件夹 mysqlconnector 还包含一个 jar 文件。所以首先我尝试按照 this link 中的说明创建 seo.jar,但是当我尝试通过 java -jar seo.jar 从终端执行它时,我得到一个错误:

Error: Could not find file connectionprops.properties

如截图所示,我尝试将connectionprops.properties放入main包中,但同样的问题仍然存在。

然后我尝试制作一个名为 manifest.mfmanifest 文件,其内容为:

Main-Class: bin.main.MainClass   //also tried Main-Class: MainClass

因为我的项目结构是:

seo --> bin --> main --> MainClass.class

我将 manifest.mf 放在文件夹 seo 中,并在终端中输入以下命令:

jar -cvfm seo.jar manifest.mf *

但是当通过 java -jar seo.jar 从终端执行它时,我再次收到错误消息:

Error: Could not find or load main class bin.main.MainClass

我做错了什么?我应该更改项目结构中的某些内容吗?我的项目中还有其他 jar 文件有问题吗?如何创建可执行文件 jar 并成功执行?

bin.main 不是包名。您不能将此添加到 manifest.mf.

只有当包中有主要 class 时才应添加包名称。如果你的包裹是默认的,那么只放主要的 class.

Main-Class: MainClass 

Manifest Main-Class 属性需要接收 Main class 的包路径。项目的结构是什么样的并不重要,重要的是 src/ 文件夹中的完全限定包名称。所以在这种情况下,main.MainClass 是你应该写的。

此外,如果您在尝试读取程序中的 connectionprops.properties 时收到其他错误,请尝试使用

打开文件
someObject.getClass().getResourceAsStream("connectionprops.properties")