1:先说说第三方jar问题。
在命令行窗口下,如果编译没有问题的话,那么运行时就会报告程序中用第三方类缺失。
此时按照如下方法即可解决:
先查询CLASSPATH值,值为:
CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/jre/lib/rt.jar
那么将所需的三个jar包添加到物理路径%JAVA_HOME%/lib下,然后修改CLASSPATH值,修改后的值为:
CLASSPATH=.;%JAVA_HOME%/lib/msbase.jar;%JAVA_HOME%/lib/mssqlserver.jar;%JAVA_HOME%/lib/msutil.jar;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/jre/lib/rt.jar
2:打包问题
假设两个文件:
D:/workspace/com/A.java
D:/workspace/com/B.java
两个文件都有:
package com;
如何编译运行?
进入D:/workspace路径下,输入:
javac com/A.java -d .
红色为源文件路径,蓝色为输出路径。注意-d后面有个点。点的意思是在 .java 文件的根目录
则在生成两个文件:
D:/workspace/com/A.class
D:/workspace/com/B.class
为了方便也可以采用:
javac com/*.java -d .
运行时,在包路径的根目录上运行,比如:在 D:/workspace 路径下,输入:
java com.A 或 java com/A
如果当前路径是 C:/ 或其他路径,那么
编译:
javac -cp D:/workspace D:/workspace/com/*.java -d .
运行:
java -cp D:/workspace com.A
总结
1、把包看成是源文件的一部分,而不是一个路径,这点很重要。
2、如果不加 -cp 标志,则路径为环境变量和当前路径,如果加 -cp 标志,则路径为cp指定的路径和当前路径。