1. ホーム
  2. java

[解決済み] クラスパスに定義されているにもかかわらず、「java.lang.ClassNotFoundException: com.google.gson.Gson」エラーが表示されるのですが。

2022-02-17 05:53:17

質問

gson-1.6.jarを他のjarと同じ場所に置き、eclipseのbuildpathに追加しました。

他のライブラリは追加しても問題なく使えたのですが、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>

とビルドパスウィンドウを表示します。

この時点で少し迷っています。 Googleで調べてみても、基本的にビルドパスに追加するように書かれているだけです。 どなたかアイデアをお持ちの方はいらっしゃいますか?

編集: 詳細情報

com.google.gson.GSON を参照しているコードは、jsp で bean として使用されています。 この関数は、jspから呼び出され、実行されると同時にエラーが発生します。関数の最初の行は

Gson g = new Gson();

コンパイルとデプロイは問題ないようですが、実行するとエラーメッセージが表示されます。

ありがとうございます

解決方法は?

JSP/Servletのウェブアプリケーションの場合、サードパーティのJARファイルを /WEB-INF/lib フォルダーに格納されます。プロジェクトが ダイナミックWebプロジェクト この場合、Eclipseは自動的に正しいビルドパスを設定するよう配慮しています。あなたは ではなく はEclipseのbuildpathをいじる必要があります。すべて元に戻すことを忘れないでください。