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

2022-09-01 10:09:07

我正在尝试解析一些使用gson-1.6获得的JSON对象字符串.jar我已将其放置在与其他.jar相同的位置,并将其添加到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

在这一点上,我有点迷茫。我尝试过Google,这些帖子基本上只是说要添加到您的构建路径中。有人有什么想法吗?

编辑: 更多信息

引用 com.google.gson.GSON 的代码被 jsp 用作 bean。此函数从 jsp 调用,一旦执行该函数,就会发生错误。函数中的第一行是:

Gson g = new Gson();

它似乎编译和部署很好,但是当它被执行时,我得到错误消息。

谢谢


答案 1

对于 JSP/Servlet Web 应用程序,您只需要将第三方 JAR 文件放入文件夹中即可。如果项目是一个动态Web项目,那么Eclipse也会自动负责设置正确的构建路径。你不需要玩弄Eclipse buildpath。不要忘记撤消所有操作。/WEB-INF/lib


答案 2

我遇到了同样的问题,并尝试了上述解决方案,但没有一个对我有用。然后我尝试了以下步骤,问题解决了:

  • 转到项目属性。
  • 转到“Java 生成路径”选项。
  • 然后将文件添加为外部jar。*.jar
  • 然后转到“订单和导出”选项,然后选择项目的库和 jar。
  • 保存当前更改并清理项目,然后再次运行项目。

推荐