我有以下代碼爲什麼如果cp不以冒號結尾,class.getClassLoader()會拋出空指針?
public static void main(String args[]) throws Exception {
ClassLoader sysClassLoader = Thread.currentThread().getContextClassLoader();
URL[] urls = ((URLClassLoader)sysClassLoader).getURLs();
String cp = "";
for(int i=0; i< urls.length; i++)
{
String ffile = (String) urls[i].getFile();
}
}
和類編譯很好 - 但這是STANGE。如果我啓動類這種方式,我抓住一個空指針:
java -cp "foo.jar" FileUtils
Exception in thread "main" java.lang.NoClassDefFoundError: FileUtils
但是,當我啓動它這一切的辦法是罰款:
java -cp "foo.jar:" FileUtils
File:/home/u/wzhkit/java/foo.jar
這是爲什麼,我該如何解決這個得到什麼?
謝謝, 克里斯
這是不是因爲你的代碼做什麼;它根本找不到執行它的主類。根本沒有空指針。 – SJuan76
不需要路徑值附近的引號。 Char:是Linux下的路徑分隔符。 – 01es
我看到一個'NoClassDefFoundError',你在哪裏發現'NullPointerException'? (或者它是你的問題中的拼寫錯誤?) –