Java環境配置的Classpath使用故障實例 – JAVA編程語言程序開發技術文章

類為 run.class

包:package localjava.client.dynamic

類內要求:

import org.apache.wsif.WSIFMessage;

import org.apache.wsif.WSIFException;

import org.apache.wsif.WSIFOperation;

import org.apache.wsif.WSIFPort;

import org.apache.wsif.WSIFService;

import org.apache.wsif.WSIFServiceFactory;

classpath設置的相對路徑:libwsif.jar;……;(如果當時設成絕對路徑,也會避免很多不應該的麻煩,所以盡量使用絕對路徑,這裡為瞭幫助自己記憶問題,所以使用相對路徑)lib在c:wsif裡

要求導入的類都在wsif.jar裡,另外在C:wsif-2.0uildclassesorgapachewsif裡有解壓的class文件

run.class類的實際位置:c:wsifuildsampleslocaljavaclientdynamic

在目錄:c:wsifuildsamples下運行java localjava.client.dynamic.Run samples/localjava/AddressBook.wsdl

報錯:Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/wsif/WSIFException

這是因為classpath使用相對路徑,導致java時無法找到jar文件,所以有三種方法解決:

1、設置classpath為絕對路徑

2、在lib(classpath設置的目錄)所在的目錄下(C:WSIF )使用下列命令-CP參數運行:java -cp %CLASSPATH%;buildsamples; localjava.client.dynamic.Run samples/localjava/AddressBook.wsdl 其中的buildsamples指定瞭RUN類所在的路徑。

(其中路徑也可以采用絕對路徑寫法,相對路徑寫法中,“.”代表當前路徑,“..”代表父節點路徑,比如上面的路徑也可以寫成“.uildsamples;”或者“..wsifuildsamples”)。因為包指定到localjava,所以路徑應該設置到包的上層目錄samples,這樣就能在該目錄下沿包路徑找到run.class類瞭。

3、在c:wsifuildsamples路徑下運行java -cp [路徑] localjava.client.dynamic.Run samples/localjava/AddressBook.wsdl 其中路徑包括瞭所有需要的類路徑。

這個方法比較麻煩。

總是配置系統變量也比較容易混亂,所以可以采用編輯一個批處理文件的方法,裡面的java 命令指定瞭所有類路徑。

發佈留言