我创建了自己的java库,它使用了一些外部自由派,例如来自Apache的HttpClient
。
当我编译并尝试使用它时,我收到此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpEntity
at main.Main.main(Main.java:14)
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
即使所有依赖库都包含在我的jar
。
我做了一些研究,看起来这是一个编译器版本的问题。我的lib是用Java 8
编译的,而Apache libs
是用旧版本编译的。
我的问题是,为什么在编译时没有任何关于这种库的可能问题的警告?
我怎么能知道用什么版本的Java编译这些库?