Recibo el error “java.lang.ClassNotFoundException: com.google.gson.Gson” aunque esté definido en mi classpath

Estoy tratando de analizar algunas cadenas de objetos JSON que obtengo usando gson-1.6.jar. Lo he colocado en la misma ubicación que mis otros .jar y lo he agregado a mi ruta de construcción en eclipse.

Las otras bibliotecas funcionaron bien cuando las agregué y puedo usarlas sin ningún problema, pero cuando bash crear el objeto JSON, obtengo el error de titular. Revisé las otras preguntas con este error, pero no pude encontrar una solución que no implicara algo que haya intentado o algo que no esté relacionado.

Lo importo cerca de la parte superior usando:

import com.google.gson.Gson; 

Luego, úsela más tarde en una función estática como esta:

 Gson g = new Gson(); 

Aquí está mi archivo de ruta de clases generado por eclipse [Ruta] sustituido por la ruta real:

                     

así como mi ventana de ruta de comstackción: Pantalla de compilación de ruta

Estoy un poco perdido en este punto. He intentado con Google y básicamente las publicaciones dicen agregar a tu ruta de comstackción. ¿Alguien tiene ideas?

Editar: Más información

El código que hace referencia a com.google.gson.GSON se usa como un bean por un jsp. Esta función se llama desde jsp y el error ocurre tan pronto como se ejecuta la función. La primera línea en la función es:

 Gson g = new Gson(); 

Parece comstackr e implementar bien, pero cuando se ejecuta, aparece el mensaje de error.

Gracias

En el caso de una aplicación /WEB-INF/lib JSP / Servlet, solo necesita colocar archivos JAR de terceros en la carpeta /WEB-INF/lib . Si el proyecto es un Proyecto Web Dinámico , entonces Eclipse se encargará automáticamente de establecer el camino de comstackción también. No necesita jugar con Eclipse buildpath. No olvides deshacer todo.

Me enfrenté al mismo problema e intenté las soluciones anteriores, pero ninguna de ellas funcionó para mí. Luego intenté seguir los pasos y el problema fue resuelto:

  • Ve a las propiedades del proyecto.
  • Ir a la opción Java Build Path.
  • A continuación, agregue el archivo *.jar como jar externo.
  • Luego vaya a la opción de orden y exportación y seleccione las bibliotecas y jarras del proyecto.
  • guarde los cambios actuales y limpie el proyecto y ejecute el proyecto nuevamente.

Haga clic en Deployment Assembly (justo arriba de Java Build Path que muestra como activa) y asegúrese de que vea json-lib-2.4-jdk15.jar allí.

Por lo general, debe agregarlo a su ruta de comstackción y exportarlo desde su proyecto. Una vez que se haya exportado, verá la advertencia de WTP de que no forma parte de la implementación. Elija la opción Quick Fix y agréguela a su ruta de implementación.

Solo estaba teniendo el mismo problema …

Para resolver el problema (al menos en mi caso), asegúrese de haber incluido la carpeta lib en su paquete classpath:

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

O si desea incluir todos los jar en la carpeta:

 Bundle-ClassPath: lib/ 

Aún tendrá que colocar los archivos jar en la ruta de comstackción java como se muestra arriba. Entonces su jar importado debería aparecer en la carpeta “Bibliotecas referenciadas”

¡Bien, para mí el problema se resolvió añadiendo los archivos jar a mi carpeta APACHE / TOMCAT / lib! .

Tuve el mismo problema al desarrollar un nodo / complemento KNIME en el entorno de Eclipse. La solución no era solo agregar el gson.jar como un JAR externo a la ruta de comstackción, sino que también se requería ir a plugin.xml , luego a la pestaña Dependencias y agregar com.google.gson como un complemento obligatorio.