参考:
http://cyesheng.iteye.com/blog/1544299
http://blog.sina.com.cn/s/blog_ab5e3d9b0101fodw.html
linux下编译引用第三方jar包的方法:
java文件需要引入外部的jar包:
1、将外部jar包放在Linux路径下面。如/home/username/lib.
2、将需要编译的java文件放在Linux路径下。如/home/username/test
3、编译已经写好的java文件,命令如下(-cp指列出路径):
javac -cp /home/username/lib/sss.jar /home/username/test.java
生成test.class文件。
4、运行程序,命令如下:
java -cp /home/username/lib/sss.jar:/home/username/lib/test
test
PS:
不过如果要引入的jar文件有多个的话,上面的格式要改为:冒号作为分隔符,并且同最后的java文件之间分隔符是冒号空格“: ”
例如:javac -cp /home/username/aaa.jar:/home/username/bbb.jar:/home/username/ccc.jar:
TestDemo.java
java
-cp /home/username/aaa.jar:/home/username/bbb.jar:/home/username/ccc.jar: package.TestDemo.java
pps:
如果有包,要在根目录下建立包名文件夹,把java文件放进去后编译,然后执行。
我犯过的错误是,有包名但编译时没有放在对应文件夹下,但是能通过,结果执行提示noClassDefFoundError。查资料后,java文件的根目录下建立了包名同名的文件夹,把编译好的class文件放入,之后java -cp执行,仍然提示错误。这可能是新手容易犯得错误之一。需要编译之前就建立对应的目录层次,这样生成的.class文件才是对的。.class文件在jvm执行时,是顺着classpath寻找文件的(当然首先保证环境变量PATH中有要执行的项目目录路径)