我的.class文件分别包含在一些包里假如报名分别为:11,22,33,44,55
我的主文件(aa.class)在包11中
我的清单文件:
Manifest-Version: 1.0
Created-By: 1.6.0-rc (Sun Microsystems Inc.)
Main-Class: 11.aa

我使用下列方法生成.JAR文件
  jar cvfm aaaaa.jar manifest.mf -C 11/ . 22/ . 33/ . 44/ . 55/ .请问这样写对吗?另一个请教的问题是当包数目太多时如果都输入太浪费时间而且容易出现错误,现在我另建了个文件夹file,把上面所有包放入文件夹file中
然后将清单文件改为Main-Class: file/11.aa请问这样写对吗?
然后jar cvfm aaaaa.jar manifest.mf -C file/ .
我是这样使用的可生成的aaaaa.jar 直接点击就是不能运行,请高手指教!谢谢!
 

解决方案 »

  1.   

    重要的是Manifest.mf文件,其中的Main-Class需正确指定要执行的主类
    你的主文件是包11下的aa.class,那么应该是
    Main-Class: 11.aa
    写成
    Main-Class: file/11.aa 肯定是不对的!!!另外,也可以直接用winzip来打包,我很少用jar命令
      

  2.   

    我的主要问题是上面提到的第二种情况:
    如果把所有包放入一个文件夹中(file文件夹)中,然后jar cvfm aaaaa.jar manifest.mf -C file/ . 这时候Manifest.mf怎么写?
    是Main-Class: 11.aa 还是
    Main-Class: file/11.aa 
      

  3.   

    jar -cvfm 要生成的.jar文件名 .mf文件名 .class文件名
    .mf文件的格式要注意:
    Main-Class: 带有Main文法的类名注意Main-Class: 后有一空格 最后有一回车
      

  4.   

    我一般都使用eclipse打包!没用过命令行的,学习一下!
      

  5.   

    用eclipse打包很方便。export-->JAR File
      

  6.   

    我的主要问题是上面提到的第二种情况: 
    如果把所有包放入一个文件夹中(file文件夹)中,然后 jar cvfm aaaaa.jar manifest.mf -C file/ . 这时候Manifest.mf怎么写? 
    是Main-Class: 11.aa 还是 
    Main-Class: file/11.aa 
      

  7.   

    eclipse 导出为 .jar,有了工具就好好利用
      

  8.   

    建议楼主用ant工具。
    <?xml version="1.0" ?>
    <project name="AA" default="package"> <fileset dir="lib" includes="*.jar" id="library.fileset" />  
    <target name="init">                                         
    <mkdir dir="dist" />                                
    <mkdir dir="dist/lib" />
    <mkdir dir="release" />
    <echo message="copying all library to dist/lib" />
    <copy todir="dist/lib">                              
    <fileset refid="library.fileset" />
    </copy> </target>
    <target name="package" depends="init">
    <echo message="building jar file" />
    <jar destfile="dist/AA.jar" basedir="bin" excludes="META-INF/**.*,Spring.xml,log4j.properties,config.properties" />
    <zip destfile="release/target_all.zip" basedir="dist" />
    <zip destfile="release/target_mini.zip" basedir="dist" excludes="lib/**.*,Spring.xml,log4j.properties,config.properties" />
    </target>
    </project>
      

  9.   

    是不是有些JAR的路徑沒帶上。
    eclipse   直接在項目上 右鍵 export  就可以了。
      

  10.   

    我使用了eclipse,现在又有一个问题:在我的项目下我建了一个文件件夹,里边放着窗口中用的图片信息和文件信息,在eclipse中运行图片等信息都能正常显示在窗口中,但当我使用eclipse导出后产生的.jar 包后在运行,却不能显示图片信息,解压后里边包含着所需的信息,这是为什么?但奇怪的是我在.jar文件外拷贝一个图片信息的文件夹然后运行窗口却能显示图片信息,难道打包对里边的非代码资源不起作用?
    请高手不惜指教!谢谢!
      

  11.   

    你的file是干什么用的?
    如果仅仅是来存放所有的包,那么它与各个类没有关系,因此在jar中不应反映它,也就是说只写Main-Class: 11.aa 就可。
    关键是你的各个类的package中含不含file?不含的话,就绝对不能在jar中出现它!!!
    如果你觉得包太多,写命令麻烦,就用前面我说的方法,直接用Winzip,在file目录中选中所有目录(包)及相关文件打包,将扩展名取成jar就是
      

  12.   

    应该是你使用图片的方式不对或者说不好,图片的路径有多种表示方式,如classpath、file等等,你用的是file,应该用classpath方式,这样就会在cp中去找图片了
      

  13.   

    现在的MyEclipse不都要打JAR包的功能
    要不就用命令
      

  14.   

    同问..
    用Eclipse打包也不行..
    不能直接运行...
      

  15.   


    重申一下我的问题:
      我编写了一个Frame窗口,窗口中讲显示一张图片,
    主函数放在aa包中,图片放在picture中,aa和picture在同一目录下,我在程序中使用
    Image image=Toolkit.getDefaultToolkit().createImage("picture/goo.gif");
    创建一张图片并把它显示在Frame中,现在是在eclipse中运行正常,图片可以显示出来,可是打包后就无法显示图片找不到路径,出现了我上面所提到的问题。
    请高手指教