javac编译源文件,源文件中import了第三方的源文件包,将会提示某些包不存在,三种解决方案如下。
解决方案一:
javac命令中有一个选项是classpath
-classpath 类路径
设置用户类路径,它将覆盖 CLASSPATH 环境变量中的用户类路径。若既未指定 CLASSPATH 又未指定 -classpath,则用户类路径由当前目录构成。
如果需要设置 的用户类路径不止一个,如
javac -classpath e:/import.jar;e:/tmp/import.jar -d destationpath test.java
需要注意的是,两个引用的类路径之间用;,而不是用:
解决方案二:
修改环境变量,把第三方包路径引入系统CLASSPATH。
修改环境变量的方法有三种:
1. 直接使用linux export命令
2. 修改/etc/profile文件
3.修改.bashrc文件
具体请看另外一篇博客:《fedora添加环境变量的方法总结》
解决方法三:
使用shell脚本,这种方法很好,但是还没有试过,以下转自他人博客:
在Linux下运行JAVA程序需要profile文件来配置环境变量,将用到的所有jar包的公共路径写入到文件中,但对于单个工程就比较麻烦,需要将所有jar包拷贝到公共目录下,破坏了工程之间的独立完整性,可以使用下面的shell代码能解决问题.
生成一个文件:如jarload
join(){
LINE=''
while [ $# -ne 0 ]
do
LINE=$LINE:/工程目录/WEB-INF/lib/$1
shift
done
echo $LINE
}
FILES=`ls /工程目录/WEB-INF/lib`
CLASSPATH=`join $FILES`
echo $CLASSPATH
export CLASSPATH
再次运行程序,OK!!!
/root/.bash_profile;/usr/local/j2sdk1.4.2_02/bin/java -classpath /chroot/www/jsms/WEB-INF/classes:`/chroot/bin/jarload` com.工程目录.执行程序
该贴由koei转至本版2014-5-2 16:04:14