清单错误,错误:无法找到或加载主类test.Class1

时间:2018-04-14 15:17:35

标签: java jar manifest

我有三个类,都在同一个包中。我跑步时只需要执行, java -jar jarName.jar

Class1.java

package test;

public class Class1 {

     public static void main(String[] args) throws Exception
       {

     System.out.println("Enter Class1");
     //Class1 bs = new Class1();

     Class2 objClass2 = new Class2();
     objClass2.method1();

     System.out.println("Exit Class1");
   }
 //hello

}

Class2.java

package test;

public class Class2 {

    int exitValue=100;

    public static int doIt() throws Exception{
        System.out.println("Enter doIt");
        int exitValue=10;
        if(exitValue>0) {
            throw new TestInstallException("Got an Exception here!");
        }       

    return 0;
}

public void method1() throws Exception {
    System.out.println("Enter Class2");
    int exitValue = Class2.doIt();
    System.exit(exitValue); 
}

}

TestInstallException.java

package test;

public class TestInstallException extends java.lang.Exception {

    public TestInstallException()
    {
        super();
    }

    public TestInstallException(String s) {
        super(s);
    }

public TestInstallException(String s, Exception e) {
    super(s, e);
}

public TestInstallException(Throwable cause)
{
    super(cause);
}

}

我甚至使用以下内容修改了清单文件,

> cat dd / META-INF / MANIFEST.MF
清单 - 版本:1.0。
创建人:1.8.0_141(Oracle Corporation) Main-Class:test.Class1

因此,我们可以看到它定义了主类。我在一个名为new.jar的jar文件中捆绑了everthing。但是,当我运行java -jar new.jar时,我会遇到异常。

java -jar new.jar
错误:无法找到或加载主类test.Class1

jar -tvf test.jar
     0 Sat Apr 14 20:17:54 IST 2018 META-INF /。
    89 Sat Apr 14 20:29:48 IST 2018 META-INF / MANIFEST.MF。
   562 Sat Apr 14 20:11:02 IST 2018 Class1.class。
   760 Sat Apr 14 20:11:06 IST 2018 Class2.class。
   542 Sat Apr 14 20:10:50 IST 2018 TestInstallException.class。

1 个答案:

答案 0 :(得分:0)

通过将类捆绑在测试文件夹中来解决问题。

测试/类的* .class

另外,在清单中添加了这个 Class-Path:。