Подтвердить что ты не робот

Я получаю сообщение "java.lang.ClassNotFoundException: com.google.gson.Gson", даже если оно определено в моем пути к классам

Я пытаюсь проанализировать некоторые строки объектов JSON, которые я получаю с помощью gson-1.6.jar. Я поместил его в том же месте, что и другие .jars, и добавил его в мой путь построения в eclipse.

Другие библиотеки работали нормально, когда я добавил их, и я могу использовать их без каких-либо проблем, но когда я пытаюсь создать объект JSON, я получаю титульную ошибку. Я просмотрел другие вопросы с этой ошибкой, но я не мог найти решение, которое не включало бы что-то, что я пробовал, или что-то не связанное.

Я импортирую его вверху, используя:

import com.google.gson.Gson;

Затем используйте его позже в статической функции, например:

Gson g = new Gson();

Вот мой сгенерированный eclipse файл classpath [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, используется как bean с помощью jsp. Эта функция вызывается из jsp, и ошибка возникает, как только функция выполняется. Первая строка в функции:

Gson g = new Gson();

Кажется, что компилировать и развернуть отлично, но когда он выполняется, я получаю сообщение об ошибке.

Спасибо

4b9b3361

Ответ 1

В случае веб-приложения JSP/Servlet вам просто нужно удалить сторонние JAR файлы в папку /WEB-INF/lib. Если проект представляет собой динамический веб-проект, Eclipse автоматически позаботится о том, чтобы правильно установить путь построения. Вы не можете не работать с Eclipse buildpath. Не забудьте отменить все.

Ответ 2

Я столкнулся с такой же проблемой и попробовал решения, но ни один из них не работал у меня. Затем я попытался выполнить следующие шаги, и проблема была решена:

  • Перейдите к свойствам проекта.
  • Перейдите к опции Java Build Path.
  • Затем добавьте файл *.jar в качестве внешней банки.
  • Затем перейдите к опции порядка и экспорта и выберите библиотеки и банки проекта.
  • сохранить текущие изменения и очистить проект и снова запустить проект.

Ответ 3

Нажмите 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,
 .
...

Или если вы хотите включить все банку в папку:

Bundle-ClassPath: lib/

Вам все равно нужно поместить файлы jar на путь сборки java, как показано выше. Затем ваша импортированная банка должна появиться в папке "Связанные библиотеки"

Ответ 5

Что ж, проблема решена, добавив банки в папку APACHE/TOMCAT/lib!.

Ответ 6

У меня была та же проблема при разработке KNIME Node/plugin в среде Eclipse. Решением было не только добавить gson.jar как externar JAR в путь сборки, он также должен был перейти на plugin.xml, затем вкладку Dependencies и добавить com.google.gson в качестве необходимого плагина.

Ответ 8

Я столкнулся с вышеуказанной ошибкой при сборке и запуске в Eclipse, где все было хорошо, за исключением этой ошибки. Однако я обнаружил, что сборка Maven не удалась и мне нужно было включить Gson в мой pom.xml. После исправления pom.xml все стало на свои места.