我是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(java.base@9-internal/BuiltinClassLoader.java:366)
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@9-internal/ClassLoaders.java:184)
at java.lang.ClassLoader.loadClass(java.base@9-internal/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 :(得分:5)
正在运行您的程序时发生异常 - 您在编译时指定了类路径。编译期间设置的类路径不存储在已编译的类文件等中 - 您也需要在运行程序时正确指定它!
像这样:
$ java -cp ../libs/* ExtractCustomerIds