从下午开始编译相关联的两个类,一直报错找不到另一个类,千辛万苦终于找到问题原因,写下此篇记载。
public class A {
private B;
...
}
public class B{
...
}
目录结构:
$HOME/myweb/src/A.java
$HOME/myweb/src/B.java (源码目录)
$HOME/myweb/WEB-INF/classes(编译后文件目录)
$HOME/myweb/WEB-INF/lib/commons-fileupload-1.3.1.jar(引用外部jar包)
其中A类使用B类作静态变量。
编译顺序:
javac -classpath $TOMCAT_HOME/lib/servlet-api.jar -d $HOME/myweb/WEB-INF/classes $HOME/myweb/src/B.java (成功)
javac -classpath $TOMCAT_HOME/lib/servlet-api.jar -d $HOME/myweb/WEB-INF/classes $HOME/myweb/src/A.java (报错找不到B类)
引用servlet-api.jar包因为我刚开始学些写web应用程序。B类顺利编译成功,但是使用此方式编译A类一直不成功,百思不得其解。
终于找到问题所在,修改编译方式:
javac -classpath $HOME/myweb/WEB-INF/classes:$TOMCAT_HOME/lib/servlet-api.jar -d $HOME/myweb/WEB-INF/classes $HOME/myweb/src/A.java
编译成功!
引用外部jar包,修改为:
javac -classpath $HOME/myweb/WEB-INF/classes: $HOME/myweb/WEB-INF/lib:$TOMCAT_HOME/lib/servlet-api.jar -d $HOME/myweb/WEB-INF/classes $HOME/myweb/src/A.java(报错找不到jar包)
再修改:
javac -classpath $HOME/myweb/WEB-INF/classes: $HOME/myweb/WEB-INF/lib/commons-fileupload-1.3.1.jar:$TOMCAT_HOME/lib/servlet-api.jar -d $HOME/myweb/WEB-INF/classes $HOME/myweb/src/A.java(成功)