需要使用 cvfm 参数,在包名后面写上Manifest文件的名字,例如
jar cvfm test.jar MAINFEST.MF ScanIP.class

解决方案 »

  1.   

    to gtlang78:
     我按你说的加了 manifest.mf如:jar cvfm test.jar MAINFEST.MF ScanIP.class
    但提示找不到manifest.mf文件啊?我的scanip.class放在c:
      

  2.   

    自己写一个MANIFEST.MF文件,内容是:
    Main-Class: ScanIP保存到ScanIP.class同一个目录下,然后在这个目录下运行
    jar cvfm test.jar MAINFEST.MF ScanIP.class
      

  3.   

    Main-Class: ScanIP下面要加一个空行
      

  4.   

    to gtlang78:
    我按照你说了如下:
    C:\>jar cvfm test.jar MANIFEST.MF ScanIP.class
    标明清单(manifest)
    增加:ScanIP.class(读入= 3351) (写出= 1908)(压缩了 43%)
    但我运行命令,错误提示如下:
    C:\>java -jar test.jar      
    Exception in thread "main" java.lang.NoClassDefFoundError: ScanIP$1
     at ScanIP.<init><ScanIP.java:26>
     at ScanIP.<main><ScanIP.java:113>
     我不知道为何?
    to hellwindy:
    我在Main-Class:(空格) ScanIP (回车)    空格 回车我都加了 ,是没有错误的。二位 我要重新声明的是:用java ScanIP
    是可以正常运行的。就是用java -jar test.jar 不能运行出结果!不知道这个问题如何解决???
      

  5.   

    如何让自己做的 jar 文件变得可以运行  在 jar 文件的 manifest 文件中可以指定当 JVM 运行 jar 文件 
    时调用的类,这个类必须有 main(). ----------------------------------- 
    import java.awt.*; 
    import java.awt.event.*; public class MyClass { 
    public static void main(String[] args) { 
    Frame f = new Frame(); 
    f.addWindowListener 
    (new WindowAdapter() { 
    public void windowClosing(WindowEvent e) { 
    System.exit(0); 


    ); 
    f.add(new Label("Hello world")); 
    f.setSize(200,200); 
    f.setVisible(true); 


    ---------------------------------------------- 
    然后创建这个manifest 文件(manifest.mft) 
    ---------------------------------------------- 
    Manifest-Version: 1.0
    Main-Class: MyClass
    Classpath: .\MyJar.jar
    ---------------------------------------------- 在 dos 窗口下运行 
    jar cvfm MyJar.jar manifest.mft MyClass.class 
    创建 jar 文件 运行 java -jar MyJar.jar 测试 在 explorer 内用鼠标双击 MyJar.jar 可以运行程序 如果在环境变量内加入 
    set PATHEXT=.EXE;.BAT;.CMD;.JAR 
    并且 MyJar.jar 在 path 下 
    则在 dos 窗口内运行 MyJar 则会调用 java -jar MyJar.jar 
      

  6.   

    你的程序里好像用到了内部类,那打包的时候要把内部类的class文件也打进去,命令行应该改成
    jar cvfm test.jar MANIFEST.MF ScanIP.class ScanIP$1.class如果还有其他的类似 Scan$x.class的文件也都写上
      

  7.   

    to gtlang78:
    我把内部类打进去好了 多谢你!