您的位置:首页 > 运维架构 > Linux

关于jar打包双击运行的问题

2008-11-21 10:14 197 查看
假如有一个jpackage1的包,里面已经有编译好的各种class文件.对其进行打包步骤如下:
     1.输入jar -cf myname.jar jpackage1/*.class ,此命令跟linux下的打包基本一样的,-cf表示创建文件,myname.jar指定要创建的文件名,jpackage1/*.class 是要打包的文件.打包成功后就会生成一个myname.jar的文件.
     2.用winrar打开此文件,进入META-INF文件夹,里面会有一个叫MANIFEST.MF的文件,这个文件是默认生成,要对其修改才能用.自己新建一个MANIFEST.MF的文件,文件的内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
Main-Class: jpackage1.MainClass
Class-Path: ./lib/mysql-connector-java-5.0.7-bin.jar
     Main-Class是指定程序入口类,注意冒号后有个空格,Class-Path是要引用包.要采用相对路径.把修改好以后的MANIFEST.MF放入myname.jar的META-INF文件夹中把原来的覆盖掉就可以了.估计有人会问怎么把MANIFEST.MF放入myname.jar中呢?我想到的是比较笨的方法,就是用winrar打开myname.jar然后进入META-INF文件夹,把自己编写的MANIFEST.MF拖进去,覆盖掉.
      要注意的是如果你的java程序引用到第3方的包的话,你可以在myname.jar所在的文件夹新建一个lib的文件,然后把要引用的包copy进去,然后在class-path中给出就得.至此,你应该就可以双击运行myname.jar了.
      3.如果要不安装jre也能运行myname.jar,可以首先把本机的jre复制到myname.jar所在的文件夹.然后网上下载一个免费的开源程序JavaLanncher,下载后,解压里面会有几个文件,把Launch.exe,和Launcher.cfg复制到myname.jar所在的文件夹.打开Launcher.cfg,内容如下:
.
./jre1.5.0_06/Bin/javaw.exe
-jar myname.jar    
第一行是当前文件目录,第二行就是刚刚复制过来的jre了,第三行是要运行的包,对应这里就是myname.jar了.配置完Launcher.cfg后,你就可以双击Launch.exe运行myname.jar了.
      4.最后你可以上网下载个Resource Hacker的程序,为Launch.exe添加一个图标. 这样把整个文件拷贝到没有jre的机器也能双击exe运行java程序了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jar java exe linux sun class