原程序是:
在包com.guangzhou.jar中的某个类中main方法中调用:
Class.forName("com.huizhou.Test");而类com.huizhou.Test,并不在该包中,而是在另一个包:com.huizhou.jar中。但是在命令行中:java -cp %TOOL_PATH% -jar com.guangzhou.jar
(变量TOOL_PATH包含了com.huizhou.jar)结果在Class.forName("com.huizhou.Test");抛出ClassNotFoundException但在Eclipse中,只要在guangzhou工程的java build path中配置了包com.huizhou.jar就能正常。
Eclipse中一定是使用了某个方法使得Class.forName能找到外部包,很想怎样使在命令行中也正常呢?
在包com.guangzhou.jar中的某个类中main方法中调用:
Class.forName("com.huizhou.Test");而类com.huizhou.Test,并不在该包中,而是在另一个包:com.huizhou.jar中。但是在命令行中:java -cp %TOOL_PATH% -jar com.guangzhou.jar
(变量TOOL_PATH包含了com.huizhou.jar)结果在Class.forName("com.huizhou.Test");抛出ClassNotFoundException但在Eclipse中,只要在guangzhou工程的java build path中配置了包com.huizhou.jar就能正常。
Eclipse中一定是使用了某个方法使得Class.forName能找到外部包,很想怎样使在命令行中也正常呢?
*.jar
把jar文件com.huizhou.jar的com.去掉
*.jar
什么意思?
(变量TOOL_PATH包含了com.huizhou.jar)
这样做应该没有问题了;而且你放置到环境变量中后,编译时已经不需要加-cp参数了
-----------(1)----------
set %TOOL_PATH%=...
java -cp %TOOL_PATH% ...-----------(2)----------
set %CLASSPATH%=...
java -cp %CLASSPATH% ...-----------(3)----------
set %CLASSPATH%=...
java (去掉 -cp %TOOL_PATH%) ...在以上基础上,将-cp 改为-classpath无一幸免,全抛出异常。
如果我使用ant,却不会出现这样的事