javaWeb_打jar包
- 不带lib的工程
1) 创建工程
新建的一个java应用程序,调试时可以直接运行main函数。但是这样的程序如何部署呢?
创建一个工程:javaProject。New一个类:
public class MainClass {
public static void main(String[] args){
System.out.println(“hello world”);
}
}
2) 导出jar包
在工程上右键导出,选择java file
下一步,选择打包内容时不要选class、project。选择打出的包名及路径。
1) 运行jar包
cmd,进入jar包所在目录。
java –jar 包名.jar
也可以在包所在位置创建一个bat文件,内容如下:
@echo off
cd /d %~dp0
java -jar javaProject.jar
pause
- 带lib的工程
http://www.cnblogs.com/lanxuezaipiao/p/3291641.html
1) 创建工程
创建工程略。以现有的bigdatastorm为例。它依赖了好几十个jar包,位置为当前工程下的lib目录中。
新建一个文件:MANIFEST.MF
内容如下:
Manifest-Version: 1.0
Class-Path:
lib/antlr-2.7.7.jar lib/aopalliance-1.0.jar lib/carbonite-1.4.0.jar lib/chill-java-0.3.5.jar
lib/clj-stacktrace-0.2.2.jar lib/clj-time-0.4.1.jar lib/clojure-1.5.1.jar lib/clout-1.0.1.jar
…略
lib/dom4j-1.6.1.jar lib/ezmorph-1.0.6.jar lib/fastjson-1.2.4.jar lib/gson-2.2.2.jar
lib/xercesImpl.jar lib/xml-apis.jar lib/xmlunit.jar lib/xstream-1.3.1.jar
Main-Class: com.glodon.storm.analysis.AnalysisStormTopology
此文件对格式要求相当高,一定要注意:
1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;
- Class-Path后面写依赖的包名,包之间需要以空格隔开,可以折行,但是行头和行尾都需要有一个空格。且最后一行后面要空出两行(两行都是顶格,即不要加空格什么的)。
3、假设我们的项目打包后为KillCheatFans.jar,那么按照上面的定义,应该在 KillCheatFans.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件
在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread “main” java.lang.NoClassDefFoundError”的错误;
4、Main-Class后面是类的全地址,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误。
5、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误。
2) 导出jar
默认会选中左侧的lib,右侧的所有内容,这此都不需要,直接把钩去掉。特别是lib,如果选中的话会将lib下所有的依赖包打入jar,会很大。
下一步、下一步,选择工程中自己添加的MANIFESTT.MF文件。
3) 运行jar包
因为此包需要依赖其他包,且相对路径lib下。因此在jar包同目录添加一个lib文件夹:
将所依赖的所有jar包放到lib目录下。
运行jar包和上面一样。cmd到当前目录,java –jar bigdatastorm.jar
注1:可以指定使用的内存大小:(至少512m,最多1024m)
java -jar -Xms512m -Xmx1024m bigdatastorm.jar
注2:可以在后面添加参数:
java -jar bigdatastorm.jar bigdata admin admin
这些参数就可以在main函数中直接使用,如:
4) bat
在当前目录创建一个bat文件,内容如下:
@echo off
cd /d %~dp0
java -jar bigdatastorm.jar
pause
注:红色内容即为上面cmd中需要输入的内容。
还没有评论,来说两句吧...