运行jar文件时找不到或加载主类

时间:2019-10-22 09:39:03

标签: java packaging manifest.mf

我知道这是一个普遍的问题,但是我已经尝试了很多方法来使它起作用。

主类名称:测试

我在MANIFEST.MF属性中加入了Main-Class,如下所示:

  1. Main-Class: src.client.Test
  2. Main-Class: classes.client.Test
  3. Main-Class: client.Test
  4. Main-Class: Test

以上方法均无效。(jar位于部署目录中)

这是我项目的内容: enter image description here

在我的部署配置文件中,我包括:

  1. MANIFEST.MF
  2. lib 目录
  3. 文件的组贡献者(Test.class,我正在使用的外部 jar)的所有合并内容

注意:我正在使用 JDeveloper 12c IDE


我已经尝试过但无法使它起作用的相关帖子:

Could not find or load main class with a Jar File

Cannot run jar file: Could not find or load main class Hello

2 个答案:

答案 0 :(得分:1)

您的jar应该具有以下结构:

  yourjar.jar
  |-client
  | |-Test.class
  |-com
  | |-external
  |   |-package
  |     |-SomeClass.class
  |     |-SomeOtherClass.class
  | ....
  |-META-INF
    |-MANIFEST.MF

您的MANIFEST.MF文件应包含

Main-Class: client.test

答案 1 :(得分:0)

我正确地提到了Main-Class属性,尽管Class-Path 错误


.jar文件的结构如下:

myjar/client/Test.class

myjar/META-INF/MANIFEST.MF

myjar/myexternal.jar


我不得不在myexternal.jar中提及MANIFEST.MF,如下:

正确Class-Path: ../myexternal.jar

错误Class-Path: myexternal.jar

我不知道这是否有意义,因为提到myexternal.jar

的方式不正确,所以加载主类时不会出现异常

尽管如此,它已经解决了!