我正在尝试运行我在网上找到的用于猫头鹰本体推理的 java 程序的简单示例。它使用owl api和hermit reasoner。所以我添加了 org.semanticweb.HermiT 和 owlapi-osgidistribution-4.0.2 库。我仍然得到以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/inject/Provider
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at obligation.Obligation.main(Obligation.java:43)
Caused by: java.lang.ClassNotFoundException: com.google.inject.Provider
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 25 more
Java Result: 1
我在stackoverflow上的一个类似问题中发现解决方案是
你错过了番石榴罐。对于 OWLAPI 4.0.2,您还需要 maven 依赖项中包含的所有其他 jar。如果您无法使用 Maven 构建代码,则需要确保手动添加所有依赖项。
我在我的项目中添加了番石榴罐,但我没有设法解决问题。另外我真的不知道 maven 依赖项中包含的所有 jar 是什么。你能帮我解决这个问题吗?