java - 在 eclipse luna 中使用 JGit 时出现 NoClassDefFoundError

标签 java jar classpath eclipse-luna

我最近下载了 eclipse luna 并通过 Eclipse 安装了 EGit 插件。我可以在 eclipse/plugins 文件夹中看到下载的 jar 文件。然后我将 JGit jar 文件添加到我的构建路径,我可以在我的 Referenced Libraries 文件夹中看到类文件。
但是,当我运行该项目时,出现以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.eclipse.jgit.util.FS.<clinit>(FS.java:112)
at org.eclipse.jgit.lib.BaseRepositoryBuilder.setupWorkTree(BaseRepositoryBuilder.java:620)
at org.eclipse.jgit.lib.BaseRepositoryBuilder.setup(BaseRepositoryBuilder.java:556)
at org.eclipse.jgit.storage.file.FileRepositoryBuilder.build(FileRepositoryBuilder.java:92)
at org.eclipse.jgit.storage.file.FileRepositoryBuilder.create(FileRepositoryBuilder.java:110)
at upload_gen.Launcher.main(Launcher.java:16)

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
... 6 more

我用谷歌搜索了这个问题,它说这可能是因为我的类路径不包含 jar 文件。但是当我检查“运行 | 运行配置”中的类路径选项卡时,它似乎包含了 jar 文件。我还检查了根文件夹中的 .classpath 文件,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry exported="true" kind="lib" path="lib/org.eclipse.jgit_3.7.0.201502260915-r.jar"/>
<classpathentry kind="var" path="JGIT_JARS"/>
<classpathentry kind="output" path="bin"/>
</classpath>

我还尝试将 JGit jar 文件添加到项目根目录的 lib 文件夹中,如您在上面的 .classpath 文件中所见。 简而言之,我尝试在外部和内部添加 jar 文件,但仍然出现错误。我还尝试使用类变量引用 jar 文件,但这也不起作用。编译项目时也没有错误,只有在运行项目时才会出错。

最佳答案

您可能需要将 slf4j jar 添加到 Eclipse 中的库中。

关于java - 在 eclipse luna 中使用 JGit 时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28782028/

相关文章:

java - 使用 Java 在 UNIX 上获取计算机 IP 的安全方法

java - tomcat jdbc连接错误中的Birt运行时

java - 如何让 tomcat 同时托管 jenkins 和 sonar 而不会因 OutOfMemoryException 而崩溃?

java - Maven:将 Shadowd-jar 作为库加载到单独的项目中

java - 从jar中读取资源文件

java - 移出 hibernate 模板

java - 接口(interface)和实现签名不匹配

java - 如何获取 Java 类路径分隔符?

jar - 创建一个包含其他库文件的 JAR 文件

java - jooq启动: command line to generate classes