Я получаю сообщение "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();
Кажется, что компилировать и развернуть отлично, но когда он выполняется, я получаю сообщение об ошибке.
Спасибо
Ответы
Ответ 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 в качестве необходимого плагина.
Ответ 7
Сделайте Быстрое исправление во вкладке Маркеры.
![Image Source metamug.com]()
Ссылка: https://metamug.com/blog/eclipse-gson-class-not-found
Ответ 8
Я столкнулся с вышеуказанной ошибкой при сборке и запуске в Eclipse, где все было хорошо, за исключением этой ошибки. Однако я обнаружил, что сборка Maven не удалась и мне нужно было включить Gson в мой pom.xml. После исправления pom.xml все стало на свои места.