我的环境是FC6+JAVA6 U4
当只有一个CALSS文件时,我新建了一个文本文件MANIFEST.MF,内容:
Manifest-Version: 1.0
Main-Class: Main
Created-By: 1.3.1 (Sun Microsystems Inc.)
然后在终端执行:
jar cvfm Main.jar MANIFEST.MF Main.class
生成的Main.jar双击就可以运行。但我现在有多个class文件:Arg.class, Split.class, Main.class
我也想打包成可以执行的jar文件,运行:
jar cvfm Main.jar MANIFEST.MF Main.class Arg.class Split.class
但是却不行。双击那个Main.jar没有任何反应。
请高手赐教!

解决方案 »

  1.   

    示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
           jar cvf classes.jar Foo.class Bar.class
    示例 2:使用现有的清单文件 "mymanifest" 并
               将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
           jar cvfm classes.jar mymanifest -C foo/ .
      

  2.   

    你的打包方式貌似没有问题 我按照你的格式打了一遍 是可以运行的
    可能是你的Manifest文件格式有点小问题
    冒号后面注意只留一个空格(根据你贴出来的格式 貌似有三个space)
    否则一般会报
    Exception in thread "main" java.lang.NoClassDefFoundError:   Main
    它获得的主类名是"  Main"
      

  3.   

    谢谢楼上的朋友,我的文件是只有一个空格的,只是贴到CSDN上时自动换成多个空格。
    我的系统是Linux,莫非改方法只能在windows下使用?
    另外,我想请教一下,如果我想其他人双击就能运行我的程序,是否一定要把jre大包进我的jar中?
    总的来说,就是我想发布我的程序了,但要知道我的朋友们不是程序员,我想让他们都能直接双击运行我的程序。
      

  4.   

    现在我换到XP系统下,打包出来的Main.jar直接双击就可以运行,也可以打包成jnlp在线安装。
    但前提是系统要安装JAR。Windows默认没安装Java虚拟机,这让我郁闷了半天。
    我编了一个小游戏给高中同学们玩,他们用的都是Windows。
    为了帮我测试这个7KB左右的游戏,却要安装一个70MB的虚拟机,对他们来说这又是何必呢~无奈,我只好把程序和jar一起打包,但要精简jar。
    我只保留了下面列出的这些文件,程序就可以运行。但无奈rt.jar又40MB左右,还是太大。
    我自己用winrar打开,在里面删除一些文件,但我对java还不是很熟悉,不晓得哪些不能删,所以能不删则尽量不删。
    最后用写了批处理调用,用winrar打包生成自解压文件,设置成解压后自动运行这个批处理文件。
    现在已经能双击直接运行了~和普通的exe文件一样。但文件个头却又10MB,而其实真正属于我自己的程序却只有7k不到。
    有种本末倒置的感觉...这问题改如何处理呢?莫非、难道只能用JBuilder编译成exe?
    请高手赐教!bin/
     awt.dll
     cmm.dll
     fontmanager.dll
     hpi.dll
     java.dll
     javaw.exe
     jpeg.dll
     net.dll
     nio.dll
     verify.dll
     zip.dllbin/client
     jvm.dlllib/
     fontconfig.bfc
     rt.jarlib/i386
     jvm.cfglib/cmm
     CIEXYZ.pf
     GRAY.pf
     LINEAR_RGB.pf
     sRGB.pf
      

  5.   

    Java本身就是解释型语言,需要在虚拟机下运行,并因此有跨平台功能。
    用那些编译器直接编译出exe,还算是java程序吗?
    但Windows下又没有虚拟机,程序运行不了。无奈:
    Java不在虚拟机下运行还能叫Java嘛~
    程序不能运行还能叫程序嘛~
      

  6.   

    EXE文件格式只是Windows下的可执行文件格式,并不是所有操作系统的可执行文件!
      

  7.   

    我当然知道,我的问题是在系统本身没有安装虚拟机的情况下,怎么让java程序独立运行。如果是把jre和程序一起打包,那如何让那个包的体积能小一些~
      

  8.   

    exe4j 看看这个东西吧!http://www.ej-technologies.com/products/exe4j/overview.html
      

  9.   

    谢谢楼上朋友们的回答。exe4j还是要求系统先安装JVM。
    有没有不要求系统事先安装JVM,就能运行JAVA程序的方法?
      

  10.   

    jre是如何都少不了的,无论你如何打包。否则无法运行。当然,你可以按照一般软件的做法,把jre放到exe文件的下面的子目录里就可以了。
    看看jbuilder自己带的jre/jdk就知道了!记得jre没必要非得安装的哦!
      

  11.   

    呵呵,jre的体积是我程序的几千倍,把jre和程序一起打包,有点本末倒置的感觉。
    还是谢谢了~
      

  12.   

    我是用的是exe4j,但是提示错误,说没有安装jvm的,要怎么才可以解决这个问题啊