2016-11-08 87 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