自己用这个命令jar cvfm test.jar manifest.mf MyJava   做了一个jar包。
mainfest.mf的内容是Manifest-Version: 1.0
Main-Class: MyJava.Test
Created-By: Hanicmainfest.mf和目录MyJava是在同一个目录下java -jar test.jar运行时报错,找不到或无法加载主类 MyJava.Test。但是这个程序不做成jar包时,用javac  跟java命令可以编译运行。

解决方案 »

  1.   

    MANIFEST文件要放在META-INF目录中,
    而MyJava(你的package)目录要放在META-INF目录外。
      

  2.   

    jar tf test.jar 看看jar文件里的目录结构正确不?
      

  3.   


    目录显示如下:
    META-INF/
    META-INF/MANIFEST>MF
    里面没有我的类文件,是不是不正常?
      

  4.   

    这样做的话 ,会提示找不到manifest.mf的
      

  5.   

    使用eclipse打一个可以运行的jar 看看自己的结构跟人家的有什么不同,按按自己的
    方式打,学习的好方法
      

  6.   

    额...成功了。多谢各位。
    分析下错误原因吧。
    首先是根据huntor坛友提示的,发现目录里面少class文件,于是发现制作java的命令错误,应改为:
    jar cvfm test.jar manifest.mf MyJava.class
    然后是
    manifest.mf中的
    Main-Class: MyJava.Test  这句不对, 首先改成了Main-Class: MyJava.class 还是不对。最后改成了Main-Class: MyJava 问题解决。小小问题浪费了我好长时间,不过总算解决了。
      

  7.   

    这要看你的mainfest文件里面是否编写正确不是说你有这个文件就没有问题写得不正确也不行的通常情况下运行的时候在当前jar包中查找要是位置错了
    自然报错
    检查以下吧