本人JAVA菜鸟,弱弱的问个问题(Centos6.4环境JDK7):我写了个JAVA脚本,路径为:/tmp/Test.java,其中用到了第三方Java类包路径为/java/mylib/xxx.jar--我通过javac-classpath/java/...
本人JAVA菜鸟,弱弱的问个问题 (Centos 6.4环境 JDK7):
我写了个JAVA脚本,路径为:/tmp/Test.java,其中用到了第三方Java类包路径为/java/mylib/xxx.jar
-- 我通过 javac -classpath /java/mylib/xxx.jar /tmp/Test.java 编译通过了顺利出现Test.class
问题来了:
1.当我运行 java /tmp/Test 报错 【java.lang.NoClassDefFoundError】 没找到xxx.jar包
2.我再运行 java -classpath /java/mylib/xxx.jar /tmp/Test 再次报错【错误: 找不到或无法加载主类 Test】
3.好吧,我设置 CLASSPATH=$CLASSPATH:/java/mylib,再次运行java /tmp/Test 又是【java.lang.NoClassDefFoundError】
4.不服输, 设置 CLASSPATH=$CLASSPATH:/java/mylib/xxx.jar,接着运行java /tmp/Test成功了!
5.出于好奇试了下: 解压xxx.jar包 jar -xf /java/mylib/xxx.jar 再运行 CLASSPATH=$CLASSPATH:/java/mylib/ 再运行 java /tmp/Test 再次成功运行
说明:如果指定classpath目录,java程序只能搜索非jar包的*.class文件,而不会搜索*.jar文件,只有把classpath指定jar文件路径即CLASSPATH=$CLASSPATH:/java/mylib/xxx.jar才能被搜索到(不知道我说的对不对哦,反正我测了下是这个样子滴)
如果按第4种方法的话,我的项目如果需要用到100个JAR包,我岂不是需要在CLASSPATH中加100个JAR?
我的问题是:
有什么方法可以让CLASSPATH读取指定目录下的所有JAR包?
或者除了CLASSPATH还有其他什么办法可以让JAVA程序找到第三方需要用到的包
我试过Eclipse里有个Java Build Path->Libraries 可以自己添加第三方JAR包,点运行,它竟然可以神奇般的编译+运行出来,Eclipse是怎么做到的呀?
请大侠赐教
展开