好的,所以我已经按照Java教程创建了一个JAR文件,甚至创建了随之而来的Manifest.txt。我非常困惑,我在命令提示符中运行JAR,但它并没有指我在主程序中使用的其他类。
我正在使用两个.class文件,javagame.class
和sound.class
。
最后加载了主类,但是当它需要引用sound.class
文件时,它说它不存在,NoClassDefFoundError
我在cmd提示符中执行了'jar cfm myjar.jar Manifest.txt javagame.class sound.class',然后
jar cfe app.jar javagame javagame.class
最后我做了java -jar app.jar
来运行JAR,我在上面找到了无法找到sound.class文件的错误。
有人请帮助我非常困惑。
答案 0 :(得分:5)
考虑.java&的目录结构。 .class文件:
HelloWorld(root directory)
|
|\src\HelloWorld.java
|
|\classes\mypackage\HelloWorld.class
HelloWorld.java看起来像
package mypackage;
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World");
}
}
要在classes文件夹中编译并获取类文件,请使用javac中的-d
选项
像:
F:\HelloWorld\src>javac -d ../classes HelloWorld.java
添加所有可以使用的.java文件* .java
要创建HelloWorld的可执行jar,请从classes目录执行以下命令:
F:\HelloWorld\classes>jar cfe HelloWorld.jar mypackage.HelloWorld mypackage/HelloWorld.class
在jar命令之后,选项cfe表示:
Finnaly,要运行生成的jar文件,请执行以下命令:
F:\HelloWorld\classes>java -jar HelloWorld.jar
输出:HelloWorld
假设,如果要指定自己的manifest.mf文件,请转到
jar cfm MyJar.jar Manifest.txt mypackage/*.class
答案 1 :(得分:1)
这是你要求的 off ,但是,更多,更简单。
我将演示如何使用BlueJ
创建JAR
文件。
打开BlueJ以及包含所有代码的项目。 (您可以 import non-bluej:转到项目,打开非BlueJ 然后选择 包含代码的文件夹。)
转到项目并选择创建Jar文件... 。选择您的主类(此处,对我来说是NumberSystems.java
)。其余的你可以自定义......
保存文件...
你们都完成了!就如此容易。您现在可以从cmd
执行此操作。