2016-11-08 184 views
0
沒有發現

我是新來的Java,並且具有的投擲以下錯誤的程序:Java類傑克遜

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper 
    at ExtractCustomerIds.main(ExtractCustomerIds.java:21) 
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.map.ObjectMapper 
    at jdk.internal.loader.BuiltinClassLoader.loadClass([email protected]/BuiltinClassLoader.java:366) 
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass([email protected]/ClassLoaders.java:184) 
    at java.lang.ClassLoader.loadClass([email protected]/ClassLoader.java:419) 
    ... 1 more 

我知道這個問題必須是與路徑,類路徑或JAR的名字,但我可以現在不知道。

我的文件夾結構是:

. 
- get_customer_ids 
    - ExtractCustomerIds.java 
- libs 
    - jackson-all-1.9.11.jar 

所以,當我是get_customer_ids我給下面的命令中:

get_customer_ids$ javac -cp ../libs/* ExtractCustomerIds.java,這會導致上述錯誤。

我以爲我正確設置類路徑,但它仍然無法正常工作。少了什麼東西?您指定的類路徑,而編譯 -

+0

加上'傑克遜映射器,asl'罐子到類路徑 –

回答

5

的異常,當運行你的程序進行。編譯過程中設置的類路徑並不存儲在已編譯的類文件或類似內容中 - 您在運行程序時也需要正確指定它!

像這樣:

$ java -cp ../libs/* ExtractCustomerIds 
+1

編輯你的答案補充,將需要實際的Java調用命令。 –

+0

謝謝@Yogesh_D! –

+0

完美!非常感謝!當然,將類路徑傳遞給'java'也很有意義。 :-) – dotslash