这就是我所拥有的 .
我有我的'MyJava'文件夹,其中包含所有内容 .
MyJava/src/a/HelloWorld.java
MyJava/src/b/Inner.java
MyJava/bin/
MyJava/manifest.txt
HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
Inner myInner = new Inner();
myInner.myInner();
}
}
Inner.java:
public class Inner {
public void myInner() {
System.out.println("Inner Method");
}
}
Manifest.txt:
Main-Class: HelloWorld
首先,我将.javas编译为.class:
javac -d bin src/a/HelloWorld.java src/b/Inner.java
现在我将这些放入.jar文件 jar cvfm myTwo.jar manifest.txt bin/*.class
现在我尝试运行jar: java -jar myTwo.jar
我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
...
Could not find the main class: HelloWorld. Program will exit.
我知道这是一个非常简单的问题,我错过了什么?
2 回答
如果检查.JAR中的文件,您会注意到编译的类位于
bin
目录中(因此无法找到,因为您的清单引用了顶级的类) .像这样更改
jar...
命令:另请参阅Java Tutorial的 "Creating a JAR File" section .
其中一个解决方案是将以下行添加到manifest.txt中
然后你可以使用'your'命令创建jar: