日期:2014-05-20  浏览次数:20756 次

关于jar打包程序的问题
我编写了一个java小程序,想把它打包成可执行的jar文件。
命令提示符的系统路径是D:\javaWorkplace,在这个路径下的文件目录结构如下:
homework
        Chopsticks.class
        Main.class  
        Philosopher.class
myManifest.mf

其中缩进表示子文件夹或文件,由于Main.class   文件是我的主类文件,所以我为清单文件myManifest.mf设置键值如下:
Main-Class:   homework.Main

通过命令提示符输入命令
D:\javaWorkplace> jar   cvfm   homework.jar   myManifest.mf   -C   homework/   .
得到结果:
标明清单(manifest)
        增加:homework/./(读入=   0)   (写出=   0)(存储了   0%)
        增加:homework/./Chopsticks.class(读入=   834)   (写出=   526)(压缩了   36%)
        增加:homework/./Philosopher.class(读入=   1663)   (写出=   955)(压缩了   42%)
        增加:homework/./Main.class(读入=   4509)   (写出=   2337)(压缩了   48%)
于是在D:\javaWorkplace下产生了homework.jar文件,但是双击之后发现错误:
Could   not   find   the   main   class.Program   will   exit!  
请问这是怎么一回事??

我的Main.class是可以运行的,在命令提示符中输入命令
D:\javaWorkplace> java   homework.Main
结果可以运行

而输入命令
D:\javaWorkplace> java   -jar   homework.jar
得到下面的出错信息
Exception   in   thread   "main "   java.lang.NoClassDefFoundError:   homework/Main



------解决方案--------------------
你那个命令只把类打进去了,homework包没进去,你可以直接用rar打开jar文件看看的
------解决方案--------------------
楼上说的是
homework文件夹也要打进去,包是不能缺的
------解决方案--------------------
学习了
不过我的jar文件为什么双击打不开啊?有图形界面,但是用命令的方式可以执行
双击的话就是rar显示里面包含的文件
------解决方案--------------------
双击本来就打不开。
------解决方案--------------------
双击运行`````汗,长见识了``
------解决方案--------------------
又学到了