Eclipse打包Java工程并导出jar包
标签:#程序#
时间:2016-12-12 20:48:12
作者:小木
当我们编写好程序后,通常需要导出并打包成jar格式的文件,以便于在其他地方执行,本篇博客讲述如何将java工程打包成jar格式。
假设我们有一个工程是CmdTest,其包含的结构文件如下。我们有一个主类,其包名为main。我们在下面有个java程序:
```java
package main;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import option.CmdOpt;
public class HelloWorld {
public static void main(String[] args) {
CmdOpt cmo = new CmdOpt();
CmdLineParser argsParser = new CmdLineParser(cmo);
if (args.length == 0){
showHelp(argsParser);
return;
}
try {
argsParser.parseArgument(args);
} catch (CmdLineException e) {
e.printStackTrace();
}
System.out.println(cmo.name);
}
public static void showHelp(CmdLineParser parser){
System.out.println("LDA [options ...] [arguments...]");
parser.printUsage(System.out);
}
}
```
有一个外部依赖包是lib文件夹下的 args4j-2.0.6.jar。该工程打包成jar格式文件步骤如下:
第一步,创建MANIFEST.MF文件:右键项目名称,依次点击**“New”--“File”**,然后在**“File name”**中输入**MANIFEST.MF**,(注意:每个可执行的jar包都包含Manifest信息,这里描述了一些关于执行的依赖的包之类的内容,之后选择使用已存在的Manifest文件,manifest写法可参见http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 。个人感觉这里的main-class不需要很精确,因为后面运行的时候我们通常都会写明我要的类是哪个,只要有主方法就可以运行)并填写如下信息:
```java
Manifest-Version: 1.0
Main-Class: HelloWorld
Class-Path: /lib/args4j-2.0.6.jar
//最后一行要保留,也就是说在最后一行要加回车
```
![](http://www.datalearner.com/resources/blog_images/62ff1e85-ac0d-4db2-b40b-f5486db2b9ff.png)
![](http://www.datalearner.com/resources/blog_images/3b1ec499-78f5-4572-ba3e-c615a4b86cf2.png)
第二步,右键项目名称,依次点击**“Export”--“Java”--“JAR file”--“Next”**;
第三步,勾选**Export generated class files and resources**;
第四步,在 **“Select the export destination:”**下面点击 **“Browse...”** 选择需要保存的目录及名称,这里我们选择d盘的根目录下。
![](http://www.datalearner.com/resources/blog_images/1e9c1fcf-11f6-444d-8312-52f4a1cf3330.png)
![](http://www.datalearner.com/resources/blog_images/5017c2a8-8be3-414d-b1ed-0bef9d163e8b.png)
第五步:点击**“Next”--“Next”**,选择**“Use existing mainfest from worspace”--“Browse...”**,选择我们第一步新建的文件即可,然后点击“Finish”;
![](http://www.datalearner.com/resources/blog_images/968c53f2-29d9-4a0d-9ab2-1b4997583c5b.png)
第六步:将工程里面的lib文件夹复制到D盘根目录下(jar文件依赖的外部包不能打包在jar文件中,所以要拷贝出来以便于访问,一般放在jar所在目录即可,这里就是在D盘根目录下);
![](http://www.datalearner.com/resources/blog_images/a08668b0-8290-413b-8857-09ee86a6d7c5.png)
第七步:使用cmd进入D盘后运行jar包即可,运行的格式是
java -classpath 包名 类名 -参数1 参数值。
下列案例中的-name表示该类有个输入参数为-name。
```java
java -classpath HI.jar main.HelloWorld -name Hello
```
如图所示,这里如果有其他主方法,把HelloWorld换掉即可,注意要写完整的包名:
![](http://www.datalearner.com/resources/blog_images/ee2253e6-2956-4023-b89f-0d2bafce6077.png)