标签:
编译Java代码你当然可以直接使用Javac,但对于大多同学还是使用Eclipse编辑器来得快捷。这篇文章来说说我使用Eclipse编译后的执行之路,走路许多弯路,看我一一道来。
演示系统的架构
首先看看我的目录结构:
这个演示代码非常简单,结构也非常清晰,不能用于任何生产,只是为了演示而已。大致思路是:HelloJar项目为UserJar提供类库工具,HelloJar的Hello类只有一个方法:
package net.oseye; public class Hello { public String say(String name){ return "Hello,"+name; } }
而UserJar的RunMain类是程序入口,调用HelloJar的函数,代码如下:
package net.oseye; import net.oseye.Hello; public class RunMain { public static void main(String[] args) { System.out.println(new Hello().say("oseye")); } }
整个架构就是如此,下面我们先来到处类库HelloJar吧。
使用Eclipse到处Jar包
引用第三方JAR包
由于UserJar使用了HelloJar.jar,现在我们展示下如何引用第三方JAR包的。
在UserJar项目右键选择"Properties",打开对话框,点击“Add External JARs”按钮选择要引用的JAR包即可。
直接执行程序
在DOS命令行进入UserJar的bin目录执行,报了如下异常:
这是因为引用了第三方的JAR包,需要设置classpath才能执行成功:
java -cp .;d:\jar\HelloJar.jar net.oseye.RunMain
如果引用很多第三方JAR岂不是很麻烦。于是我想把UserJar打成一个JAR包执行。
执行JAR包
最开始在网上搜到可以使用fatjar插件,可以把项目包括第三方JAR打成一个包。于是安装了fatjar,使用也非常方便。
结果:java -jar UserJar_fat.jar
使用Eclipse打Runnable JAR file包
上文说到为什么选择JAR file而不是Runnable JAR file,这里就简单说下两者的区别。前者是只把项目打包,不包括第三方JAR,而后者可以,就像使用FatJar插件一样。
Manifest-Version: 1.0 Class-Path: . UserJar_lib/HelloJar.jar Main-Class: net.oseye.RunMain
总结:类库一般打包成JAR file,而可执行程序就没必要使用FatJar插件了,使用Eclipse自带的也蛮好的。
标签:
原文地址:http://www.cnblogs.com/hanxu/p/4618713.html