Eclipse打包Java工程并导出jar包
当我们编写好程序后,通常需要导出并打包成jar格式的文件,以便于在其他地方执行,本篇博客讲述如何将java工程打包成jar格式。
假设我们有一个工程是CmdTest,其包含的结构文件如下。我们有一个主类,其包名为main。我们在下面有个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不需要很精确,因为后面运行的时候我们通常都会写明我要的类是哪个,只要有主方法就可以运行)并填写如下信息:
Manifest-Version: 1.0
Main-Class: HelloWorld
Class-Path: /lib/args4j-2.0.6.jar
//最后一行要保留,也就是说在最后一行要加回车


第二步,右键项目名称,依次点击**“Export”--“Java”--“JAR file”--“Next”; 第三步,勾选Export generated class files and resources**; 第四步,在 **“Select the export destination:”**下面点击 “Browse...” 选择需要保存的目录及名称,这里我们选择d盘的根目录下。


第五步:点击**“Next”--“Next”,选择“Use existing mainfest from worspace”--“Browse...”**,选择我们第一步新建的文件即可,然后点击“Finish”;

第六步:将工程里面的lib文件夹复制到D盘根目录下(jar文件依赖的外部包不能打包在jar文件中,所以要拷贝出来以便于访问,一般放在jar所在目录即可,这里就是在D盘根目录下);

第七步:使用cmd进入D盘后运行jar包即可,运行的格式是
java -classpath 包名 类名 -参数1 参数值。
下列案例中的-name表示该类有个输入参数为-name。
java -classpath HI.jar main.HelloWorld -name Hello
如图所示,这里如果有其他主方法,把HelloWorld换掉即可,注意要写完整的包名:

