eclipse导出jar(比较全的介绍)


  Eclipse导出jar文件


  根据是否有依赖外部jar,分为两种方式:

  1. 工程没有引用外部jar包或第三方jar包。

      2工程引用了外部jar包或第三方jar包,例如有依赖spring的jar。      

根据是否为标准的java工程也分为两种方式:
3. 标准java工程
4. 非标准java工程,此处主要指的是maven工程

1. 工程没有引用外部jar包时,直接导出:
       选中工程---->右键,Export...--->Java--->JAR file--->next-->选择jar file的路径及名称-->next-->next---> 选择main class--->finish. 

2.当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包的功能,所以比较麻烦一点;具体步骤如下:

当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包的功能,所以比较麻烦一点;具体步骤如下:
生成manifest file:选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路径及名称--->next--->next--->next;
此时来到了方法1中要选择main class的窗口,但这里先不选择main class,选择最上方的Generate the manifest file, 勾上Save the manifest in the workspace,在Manifest file:中输入file的名称,如/testProject/main,(其中testProject为工程名,main为manifest file的名称)点击finish,回到工程,打开刚刚生成的main,在这里要输入如下信息:
Manifest-Version: 1.0
Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties
Class-Path: jxl.jar
其中,Manifest-Version: 1.0为刚刚自动生成的manifest版本号;
Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties为main class所在类;
Class-Path: jxl.jar为外部jar包名称,这里是告诉导出的jar包,所要用到的外部的jar包的路径及名称。
上面都做完了就可以导出带外部jar包的jar包了,步骤如下:
选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路径及名称--->next--->next--->next,这时又来到了选择main class的窗口,但这里也不选择main class,选择Use existing manifest from workspace,在Manifest file:里选择刚刚生成的main,如:/testProject/main,点击finish,到此就大功告成啦;假设生成的jar包的名称为test.jar,那么Class-Path中引入的jxl.jar要和test.jar位于同一个目录下。

这里还有一点要注意:
如果想在命令行中运行刚刚生成的jar,命令如下:
java -jar test.jar
如果在jar中有一些System.out.prinln语句,运行后想看看打印出的内容,可以用一下命令:
java -jar test.jar >log.txt
输出信息会被打印到log.txt中,当然log.txt自动生成,并位于和test.jar一个目录中。

这里也可以新建一个start.bat文件,创建后;右键---编辑,输入:java -jar test.jar >log.txt;以后直接双击start.bat即可运行test.jar啦。


此部分来自CSDN博客,转载请标明出处:http://blog.csdn.net/kanfeikanfei/archive/2009/03/25/4024304.aspx

补充:
上面第二种方法对于含有较多第三方jar文件就显得不合适,太繁琐。这时可以使用一个打包的插件:fat jar。
附:图解Fat jar的使用

Fat Jar Eclipse Plug-In是一个可以将Eclipse Java Project的所有资源打包进一个可执行jar文件的小工具,可以方便的完成各种打包任务,我们经常会来打jar包,但是eclipse自带的打jar似乎不太够用,Fat Jar是eclipse的一个插件,特别是Fat Jar可以打成可执行Jar包,并且在图片等其他资源、引用外包方面使用起来更方便。
安装方法:
1.      eclipse在线更新方法:
help >software updates >Search for new features to install>new update site>
填写name 和url 
name:Fat Jar
url:http://kurucz-grafika.de/fatjar,这个是FatJarUpdateSite.
2.      eclipse插件安装方法:
下载,地址在http://downloads.sourceforge.net/fjep/net.sf.fjep.fatjar_0.0.27.zip?modtime=1195824818&big_mirror=0,解压后将解压出的plugins中的文件复制到eclipse中的plugins目录下,然后重启eclipse,避免Fat Jar被认不出来,在eclipse启动时使用-clean参数。
使用方法(我用的eclipse是eclipse 3.3.2,Fat Jar是net.sf.fjep.fatjar_0.0.27):

 

Fat Jar 打包插件,可以方便的完成各种打包任务,可以包含外部的包等 。呵呵!很好用...../,关于下载和安装就不说了,都很简单。怎么使用?、一开始我也搞了很久,网上说的都不是很详细,可以打包,但双击却运行不了。现在终于搞定了,就上来说一下。

       开始:在你的工程项目里右键弹出下图:

 

然后Buile Fat Jar出现下图:

 

    

 

再然后就Next了,又出现下图:

3 一个标准的java工程导成runnable jar

3.1 首先需要在工程里对应的入口类,执行一次main方法,从而让eclispe记录lanuncher。否则在导出jar的时候,找不到launch。下面是main执行完后,在相应的Java Application里面配置launch的名称等。

2.2 选择export | runnable JAR file |   选中工程对应的launch, 导出jar,依赖的jar导出策略(通常选2)

3.3,导出的工程结构最简单的是将配置文件放到src目录下,这样导出后就直接位于classpath。如果放在了不在/src的其它目录下,需要在将该目录添加为src目录,这样编译之后,里面的文件才能位于classpath.

 

 

4.maven导出runnable jar

 

4.1 maven错误的通过export导出runnable jar.

如果maven工程也使用export jar,导出后会发现main/resources/*.*都不会位于classpath下。这与标准的java工程在指定源目录之后,编译的内容会位于classpath不同。所以直接使用maven的插件assemble在compile之后,导出jar。

验证1.

验证2: export确实可以把maven依赖的dependency导出。Libraries里面显示指定依赖的jar。

验证3:导出的jar的结构。可以看到应用程序读取的配置文件都位于了classpath:resouces/file而不是classpath:file。

 

4.2 maven正确的导出runnable jar 

4.2.1在pom.xml里面添加如下配置

复制代码
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>com.daodao.tool.migrate.App</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
复制代码


4.2.2 新建一个goal:clean compile assembly:single, 注意,如果命令行执行,需要前面加mvn。

 

4.2.3. 将会严格的按照pom.xml里面的依赖打成jar。包括exlude的jar也会剔除。

 

附:m2eclipse中如何判断jar冲突并排除。

右侧的Resolved Dependency就是分析依赖后的最终依赖的jar。发现spring-beans,spring-core使用的是spring2.0.6的版本。与spring2.5.6冲突。(myeclipse的工具可以图形化这些冲突并标记,更加方便。)

 此时可以右健这二个jar选中Exclude  Maven Artificat .....即可修改相应的pom.xml。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值