我收到“java.lang.ClassNotFoundException: com.google.gson.Gson”错误,即使它是在我的类路径中定义的

问题描述 投票:0回答:11

我正在尝试解析我使用 gson-1.6.jar 获得的一些 JSON 对象字符串,我已将其放置在与其他 .jars 相同的位置,并将其添加到我在 eclipse 中的构建路径中。

当我添加其他库时它们工作正常,我可以毫无问题地使用它们,但是当我尝试创建 JSON 对象时,我得到了名义上的错误。我已经查看了其他带有此错误的问题,但找不到不涉及我尝试过的事情或不相关的事情的解决方案。

我使用以下方法在顶部附近导入它:

import com.google.gson.Gson;

然后像这样在静态函数中使用它:

Gson g = new Gson();

这是我的 eclipse 生成的类路径文件 [Path] 代替实际路径:

<?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/jre6">
        <attributes>
            <attribute name="owner.project.facets" value="java"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5">
        <attributes>
            <attribute name="owner.project.facets" value="jst.web"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
    <classpathentry kind="lib" path="[Path]/jabbabase-ws-jwsdp-client-2.4.7.jar"/>
    <classpathentry kind="lib" path="[Path]/log4j-1.2.16.jar"/>
    <classpathentry kind="lib" path="[Path]/gson-1.6.jar"/>
    <classpathentry kind="output" path="build/classes"/>
</classpath>

以及我的构建路径窗口: Build Path Screen

此时我有点迷茫。我试过谷歌,帖子基本上只是说要添加到你的构建路径。有人有什么想法吗?

编辑:更多信息

引用 com.google.gson.GSON 的代码被 jsp 用作 bean。这个函数是从jsp调用的,一执行就报错。函数中的第一行是:

Gson g = new Gson();

编译部署好像没问题,但是执行的时候报错

谢谢

java eclipse jar classpath
11个回答
64
投票

如果是 JSP/Servlet web 应用程序,您只需将第 3 方 JAR 文件放入

/WEB-INF/lib
文件夹中。如果项目是 Dynamic Web Project,那么 Eclipse 也会自动注意正确设置构建路径。您不需要摆弄 Eclipse 构建路径。不要忘记全部撤消。


23
投票

转到项目属性。
  • 转到 Java 构建路径选项。
  • 然后添加
  • *.jar
  • 文件作为外部jar.
    然后转到命令和导出选项并选择项目的库和罐子。
  • 保存当前更改并清理项目并再次运行项目。

6
投票
Deployment Assembly

(在您显示为活动状态的

Java Build Path
正上方)并确保在那里看到 json-lib-2.4-jdk15.jar。

通常,您应该将它添加到您的构建路径并从您的项目中导出它。导出后,您将看到 WTP 警告它不是部署的一部分。选择

Quick Fix

选项并将其添加到您的部署路径。

    


4
投票

要解决问题(至少在我的情况下)确保您已将 lib 文件夹包含在您的包类路径中:

Manifest-Version: 1.0 ... Bundle-ClassPath: lib/gson-1.6.jar, . ...

或者如果你想将所有 jar 包含在文件夹中:

Bundle-ClassPath: lib/

您仍然需要将 jar 文件放在 java 构建路径上,如上所示。然后你导入的 jar 应该出现在“Referenced Libraries”文件夹中


2
投票


1
投票

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>



0
投票
plugin.xml

,然后是“依赖项”选项卡并将 com.google.gson 添加为必需的插件。

    


0
投票

Image Source metamug.com参考:

https://metamug.com/blog/eclipse-gson-class-not-found


0
投票


0
投票


0
投票

Project -> Properties -> Deployment Assembly -> Add... -> Java Build Path Entries -> Next -> 选择 JAR 文件并单击 Finish。应用并关闭。

这对我有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.