Java 不能';运行jar文件时找不到或加载主类
我知道这是一个常见的问题,但我已经尝试了很多方法来解决这个问题 主类名:Test 我已经包含了一个带有Java 不能';运行jar文件时找不到或加载主类,java,packaging,manifest.mf,Java,Packaging,Manifest.mf,我知道这是一个常见的问题,但我已经尝试了很多方法来解决这个问题 主类名:Test 我已经包含了一个带有Main Class属性的MANIFEST.MF,如下所示: Main类:src.client.Test Main类:classes.client.Test Main类:client.Test 主类:测试 上述操作均无效。(jar位于部署目录中) 这是我项目的内容: 在我的部署配置文件中,我包括: MANIFEST.MF lib目录 文件的组贡献者的所有合并内容(Test.class,我正在使
Main Class
属性的MANIFEST.MF
,如下所示:
Main类:src.client.Test
Main类:classes.client.Test
Main类:client.Test
主类:测试
MANIFEST.MF
Test.class
,我正在使用的外部jar
)我尝试过相关的帖子,但没能成功:
您的jar应该具有以下结构:
yourjar.jar
|-client
| |-Test.class
|-com
| |-external
| |-package
| |-SomeClass.class
| |-SomeOtherClass.class
| ....
|-META-INF
|-MANIFEST.MF
您的MANIFEST.MF文件应该包含
Main Class:client.test
我正确地提到了Main Class
属性,尽管类路径是错误的
.jar
文件的结构如下所示:
myjar/client/Test.class
myjar/META-INF/MANIFEST.MF
myjar/myexternal.jar
我必须在我的MANIFEST.MF
中提到myexternal.jar
,如下所示:
正确:类路径:../myexternal.jar
错误:类路径:myexternal.jar
我不知道这是否有意义,我不应该因为提到myexternal.jar
尽管如此,这还是解决了它 我应该使用java
命令打包它吗?我正试图通过IDEstill以一种自动化的方式完成它,它不识别主类
,我有你提到的确切结构(除了com/external/package
等),如果我在同一dir
中提取jar
,并执行java-jar myjar.jar
它运行,这真是太奇怪了!只要external.jar
和myjar.jar
在同一个dir
中,它就可以工作。这怎么可能?(即使我从我的dir
中删除Test.class
,它仍然运行我的myjar.jar
(myjar.jar
包含external.jar
,客户机
,META-INF
)您可以发布您得到的确切异常吗?可能是未解析的依赖关系导致main加载失败?需要完整的堆栈跟踪,据我所知,两者都是错误的。对于纯java,根本不可能以这种方式指定另一个jar中包含的jar。可能存在一个与代码b相关的工作..\myexternal.jar从中加载包含的应用程序的ase?