当前位置: 代码迷 >> Eclipse >> eclipse打JAR包,并运作
  详细解决方案

eclipse打JAR包,并运作

热度:46   发布时间:2016-04-23 01:44:16.0
eclipse打JAR包,并运行
--------------------------------
使用eclipse打jar包注意事项:
1、选择需要打包的工程,只选中src。
   选中 Export generated class files and resources。
   选中 Compress the contents of the JAR file。
   选中 Overwrite existing files without warning。

2、选中 Export class files with compile warnings。

即可完成打包。
  若提示unable to access jarfile
  如果报错,看看MANIFEST.MF这个文件里有没有给Main-Class指定主类
图解链接http://java-beginner-liyun.iteye.com/blog/736752
----------------------------------------------
命令打可执行jar包:
1.将源文件拷贝到d:\jartest;
2.在cmd命令下进入jartest该目录;
  配置:
        set path=C盘下jdk1.5.0_05\bin所在的目录   --你自己的jdk安装目录
        set classpath=.      --当前路径
        执行命令javac -d . 类.java -----(编译class文件)
3.删除源文件;
4.jar -cvf tt.jar ./  -----(此处打包成不可执行jar包  tt为打包后的名字  ./为整个当前目录 指定要打包的文件)
5.jar -xvf tt.jar     -----解压
6.删除tt.jar
7.修改META-INF下的MAMFEST.MF文件,追加一句
   Main-Class: <插入一空格>包路径.类名<回车>     -----此包路径为package后的路径  以.隔开(如果有第三方的jar文件 再加上 classpath:lib/a.jar lib/b.jar  lib目录下面放要第三方jar文件)
8.jar -cvfM tt.jar *  -----打包
9.java -jar tt.jar   -----命令运行jar包   也可双击击运行

     我们在打包时,只要不在当前路径下进行打包,对其它路径下的一个目录进行打包,往往含他自己的路径,可以用下面的命令去掉那些路径:

     第一种:jar   cvfm  test.jar   c:\manifest.mf  -C  c:\test   \     注意:后面的 \ 可以换成点

     第二种:jar   cvf     test.jar   -C  c:\test  \   注意:后面的 \ 可以换成点

     第三种:jar   -cvf    test.jar  -C   c:\test  \   注意:后面的 \ 可以换成点



打包可执行jar文件的一些注意事项:      jar cvfm [目标.jar] [MANIFEST文件名] [应用程序所在目录]

      MANIFEST文件名随便,但jar参数中的"m"不可少,否则在jar文件中你会看到一个只有版本号的MANIFEST.MF文件。

      MANIFEST文件,也叫标明文件,清单文件,用来记录jar文件的相关信息。为了打包可执行jar文件,必须创建带jar文件主类的信息的MANIFEST文件。在任意位置,如:E:\temp,创建名为myManifest的文件,用文本编辑器编辑该文件,加入下行:

       Main-Class: 应用程序主类的路径名+回车

       回车是必须的,否则MANIFEST.MF中只有版本号。主类的路径名如:com.AppMain (假设在E:\temp\中有个com   目 录,com中有个属于com包的AppMain.class)

应用程序所在目录,当然就是com啦,如果我们在e:\temp下打包,则可以输入:

       jar cvfm AppMain.jar myManifest com

#压缩java文件, 打成war包
1.打开要打包的文件夹(cd 目录)
2.配置
    set path=C盘下jdk1.5.0_05\bin所在的目录 --你自己的jdk安装目录
    set classpath=. 当前路径
3.jar cvf tt.war ./    --(./表示当前文件下所有文件,要有   命令格式:java cvf 打包文件名称 要打包的目录 打包文件保存路径)

4.解压自然就是:  jar xvf temp.war



在包涵第三方jar包情况下在eclipse下打jar包:    在你的项目文件夹下建一个META-INF文件夹里面新建一个

     MANIFEST.MF的文件内容大至如下
      Manifest-Version: 1.0
     Ant-Version: Apache Ant 1.6.2
     Created-By: 1.5.0_06-57 ("Apple Computer, Inc.")
     Main-Class: com.opensymphony.workflow.designer.Launcher
     Class-Path: looks.jar forms.jar syntax.jar jgraph.jar foxtrot.jar osworkflow-2.8.0.jar oscore-2.2.5.jar

    Main-Class就是你要运行的类。
     Class-path:就是你要引入的包
     用eclipse export导出jar文件里,选择
         user existing manifest from workspace
    manifest file:/你的项目名/src/META-INF/MANIFEST.MF
         点击完成。这样应该就可以了
----------------------
插件FatJar
下载fatJar插件,解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹拷贝到eclipse的plugins下,重新启动Eclipse3.1,Windows=>prefernce=>fat jar preference看到他就说明已经安装成功了。如果没有看到,没有关系,删除D:\eclipse310\configuration\org.eclipse.update\platform.xml文件(此文件可以自动生成)不用担心以前的插件会因此而消失,没事。刚开始找不到如何使用它,后来看到你的项目=〉Export..=>向导里有fat jar =>使用起来真的很方便。 总结:一般把src打包export=>Jar File 即可。想把src附属的资源一起打包,必须使用FatJar => export..=>FatJar.

fatJar这插件打包的时候可把用到的第三方的JAR包也一起打到目标JAR中
---------------------------------------------、
通过bat文件运行jar包程序通过jar命令或集成开发环境的打包工具,利用manifest.mf文件将.class文件打成可执行jar包时,如果程序引用大量第三方的jar包,那么会使得manifest.mf文件的编写变得很繁琐,并且可执行的jar需要运行机器上装有jre,考虑通过编写bat文件运行jar包程序。

过程如下:

1 对自己编写的java文件,对其编译,将class文件打成jar包(包名eg DMManager.jar)

2 新建文件夹,作为应用程序的home文件夹(文件夹名eg DMManager)

3 在DMManager文件夹下建立子文件夹lib、bin、jdk

4 将DMManager.jar放入lib下

5 在lib下新建子文件夹other

6 将程序所需的第三方jar包放至other下

7 处理jdk文件夹,jdk文件夹是个可选项,如果要使得程序的执行不依赖与目标机是否装有jre运行环境,那么需将本地JAVA_HOME文件夹下的内容拷贝至该文件夹下

8 编写bat文件(*.bat)



a 利用目标机的jre(第7步可省)

@echo off
cd ..
set APP_HOME=%cd%

cd bin
start "" "%JAVA_HOME%\bin\javaw.exe" -classpath "%APP_HOME%\lib\DMManager.jar" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext";"%APP_HOME%\lib\other" -Xms256m -Xmx512m my.package.name.Main



b 利用自身的jre(第7步不能省)

@echo off
cd ..
set APP_HOME=%cd%

set JAVA_HOME=%APP_HOME%\jdk

cd bin
start "" "%JAVA_HOME%\bin\javaw.exe" -classpath "%APP_HOME%\lib\DMManager.jar" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext";"%APP_HOME%\lib\other" -Xms256m -Xmx512m my.package.name.Main

9 将*.bat文件放至bin下

10 双击*.bat试试运行效果如何。。。 over



  相关解决方案