java程序的编译 运行 打包

运行

1 运行jar文件的方法是:

java -jar xxx.jar

2 运行里面的具体某个类

java -cp xxx.jar xxx.com.xxxx
java -classpath D:\myprogram;D:\myprogram\lib\supportLib.jar org.mypackage.HelloWorld
java -cp $CLASSPATH:./DJ.jar:./json_simple-1.1.jar DJ.PushDj
或 set CLASSPATH=D:\myprogram;D:\myprogram\lib\supportLib.jar
java org.mypackage.HelloWorld

编译

3 带上依赖的包编译程序, 依赖的包必须形成一个闭环。这句未必能够执行,可能包还依赖别的包。

 javac -classpath json-simple-1.1.jar:httpclient-4.1.2.jar:httpcore-4.1.3.jar LastfmHotSongsSpider.java

 

制作可执行jar包

在linux上执行可执行的jar包

普通的jar文件要运行比较麻烦,需要配置manifest。一旦他依赖了第三方包,就更悲剧了。即使java +classpath 加上依赖包也不行,运行内部包是把外部classpath屏蔽掉的。必须通过类加载器强制加载才可能行。最简单的办法直接用eclipse生成可执行jar包[1]。

关于可执行jar包无法自定义classpath的问题

用java -jar命令运行 jar包中的程序时的路径问题

首先jar 分可执行jar 和非可执行jar 。一个可执行的 JAR 必须通过 menifest 文件的头引用它所需要的所有其他从属 JAR。如果使用了 -jar 选项,那么环境变量 CLASSPATH 和在命令行中指定的所有类路径都被 JVM 所忽略。 (http://www-128.ibm.com/developerworks/cn/java/j-jar/index.html)所以我设置的classpath无效

热加载与热卸载

ant构建

maven构建

 

 

参考资料

[1] Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包)

[2] java命令执行jar包的方式

[4] jar包 热加载/卸载 的初步实现

[5]Java知识点:javac命令

[6]JAVA和JAVAC 命令行

[7]JDK中的 javac / java / jar 命令

java jar 打包命令

posted @ 2016-09-12 12:53  EDPL  阅读(219)  评论(0)    收藏  举报