手工编译和执行java程序的命令

习惯了用IDE编译执行java程序,几乎不会使用java的命令行了。经过很多次的试验,才搞清楚了含有类引用以及类包的类的编译和执行语法。特此留下备忘。
 
Linux环境
1、编译
有一个主类TestMain.java,两个被引用的类MD5.java,StringConvertUtil.java,两个类库httpunit.jar,commons-collections-3.1.jar,并且这些类都没有包声明。这些文件放在同一个目录temp下。首先编译没有引用的独立类,然后编译主类,命令如下(转到文件所在的temp目录):
javac MD5.java
javac StringConvertUtil.java
javac -classpath .:httpunit.jar:commons-collections-3.1.jar:MD5.class:StringConvertUtil.class TestMain.java
说明:
-classpath 指定编译时用到的类库和类文件,用:分隔。可以把以上命令写成sh脚本compile.sh,执行
sh compiletest.sh
 
2、执行
命令如下,xercesImpl.jar,xmlParserAPIs.jar,js.jar,Tidy.jar,nekohtml.jar是执行时用到的类库:
java -cp :httpunit.jar:xercesImpl.jar:xmlParserAPIs.jar:js.jar:Tidy.jar:nekohtml.jar:commons-collections-3.1.jar TestMain
写成runtest.sh,,执行
sh runtest.sh
 
windows环境
1、编译
javac -classpath httpunit.jar;commons-collections-3.1.jar -sourcepath .\ TestMain.java
 
说明:
-classpath 指定引用的类库,可以包含路径,如 D:\test\httpunit.jar or .\httpunit.jar
-sourcepath 指定源文件所在的路径,如 D:\test\
此命令直接完成所有相关类的编译工作
 
举例:
2个类,ClassA在example1.p1包中,引用的类ClassB在example2.p2包中,文件路径为:
D:\test1\example1\p1\ClassA.java;D:\test2\example2\p2\ClassB.java
命令如下:
cd D:\test1
javac -classpath -sourcepath D:\test2 ClassA.java
 
2、执行
java -cp httpunit.jar;xercesImpl.jar;xmlParserAPIs.jar;js.jar;Tidy.jar;nekohtml.jar;commons-collections-3.1.jar;./ TestMain
 
说明:
-cp 指定运行时类库和引用的类文件目录,用;分隔,与Linux不同,如:D:\test\httpunit.jar;D:\test\
 
 
 

你可能感兴趣的:(java,linux,windows,脚本,ide)