创建JAR文件并在命令提示符下使用?

时间:2014-02-22 06:09:06

标签: java jar cmd

好的,所以我已经按照Java教程创建了一个JAR文件,甚至创建了随之而来的Manifest.txt。我非常困惑,我在命令提示符中运行JAR,但它并没有指我在主程序中使用的其他类。

我正在使用两个.class文件,javagame.classsound.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文件的错误。

有人请帮助我非常困惑。

2 个答案:

答案 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表示:  

       
  1. c :表示您要创建JAR文件。
  2.    
  3. f :表示您希望输出转到文件而不是stdout。
  4.    
  5. e :覆盖清单的Main-Class属性。
  6.   


    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文件。

  1. 打开BlueJ以及包含所有代码的项目。 (您可以 import non-bluej:转到项目打开非BlueJ 然后选择 包含代码的文件夹。)enter image description here

  2. 转到项目并选择创建Jar文件... 。选择您的主类(此处,对我来说是NumberSystems.java)。其余的你可以自定义...... enter image description here

  3. 保存文件... enter image description here

  4. 你们都完成了!就如此容易。您现在可以从cmd执行此操作。