Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

    
            
  •              Cómo importar un jar en Eclipse                                      7 respuestas                          
  •     
    

Uso Eclipse (3.4) y mi clase se compila sin advertencias ni errores. Mi proyecto utiliza un archivo jar externo.

¿Dónde necesito poner este archivo jar externo para no obtener un java.lang.NoClassDefFoundError cuando uso esta clase desde otro proyecto (no en Eclipse)?

Podría extraer el jar en la carpeta del proyecto, pero eso no se siente bien.

Editar: esta pregunta no se trata de importar frascos en Eclipse, sino de usarlos fuera de Eclipse.

¿Fue útil?

Solución

Si desea incluir un archivo JAR en su proyecto Eclipse, generalmente crearía una carpeta 'lib' dentro de la carpeta del proyecto y colocaría el archivo allí. Luego debe decirle a eclipse que lo incluya en su ruta de clase para que su código se compile y se ejecute dentro de eclipse.

Para hacer eso:
- Entra en las propiedades de tu proyecto
- Seleccione 'Java Build Path' en la columna de la izquierda
- Seleccione la pestaña 'Bibliotecas' en la parte central de la ventana
- Haga clic en el botón Agregar JAR - esto le dará una lista de sus proyectos en eclipse - expanda su proyecto y en la carpeta lib - su jar estará allí.
- Seleccione el JAR, haga clic en Aceptar y vuelva a aceptar en la ventana de propiedades.

Su código ahora se compilará y ejecutará.

Otros consejos

póngalo en su carpeta jre / lib / ext

todo lo que se dice sobre el classpath es cierto, pero este es un lugar consistente y sensato para vivir.

puede encontrar su carpeta jre mirando la variable de entorno JAVA_HOME en Windows.

No importa demasiado dónde lo coloque, pero necesita configurar su otro proyecto que no sea Eclipse para colocar los frascos externos en su classpath, o usar el mecanismo del directorio de extensiones, si es necesario. (Eso es más fácil, pero hacerlo explícito es posiblemente mejor).

La respuesta de Simon parece ser la mejor pero un poco desactualizada ahora. He buscado en Google este documento de Oracle Extensiones instaladas .

  

A partir de Java 6, los archivos JAR de extensión también se pueden colocar en una ubicación que es independiente de cualquier JRE en particular, de modo que todas las JRE que estén instaladas en un sistema puedan compartir las extensiones.

Dice que para Windows debe colocar sus extensiones aquí% SystemRoot% \ Sun \ Java \ lib \ ext.

Solo necesita hacer referencia a él utilizando una opción -classpath , en una carpeta que no está incluida en un espacio de trabajo de eclipse, es decir, que no depende en absoluto del eclipse.

Advertencia, puede ejecutar su otro proyecto con java -jar si hace referencia a su jar externo con la opción -cp ( ver esta pregunta )

Lo coloco en una nueva carpeta. Esta carpeta debe incluirse en la ruta de compilación. No importa si está en Eclipse o afuera. Eclipse tiene una ruta de compilación específica del proyecto y pasa esta ruta al javac. Si desea ejecutar javac fuera de Eclipse, debe pasar la ruta de compilación manualmente.

Sé que esto no es exactamente lo que estás preguntando, pero ¿has considerado usar Maven? Algunos de los complementos, como el ensamblaje, pueden ser útiles en situaciones como estas.

Tenga un frasco dentro de Eclipse, como James Camfield ha escrito.

Luego, cuando compila (Ant, Maven, manualmente) para su distribución, asegúrese de que el archivo jar esté incluido con o dentro de su aplicación jar o war o ear o cualquier archivo, y que cualquier script de inicio lo incluya en el classpath usando el - opción de línea de comando classpath para java, como VonC ha escrito.

No te preocupes por pegar los frascos en la carpeta de extensiones de Java, todo esto hará que te olvides de eso cuando se trata de enviar tu código a un tercero para que lo use, porque no lo tendrán configurado al final.

Cree un directorio lib compartido y coloque este jar y cualquier otro archivo jars común que pueda tener allí. Si está utilizando Maven, entonces ya lo tiene en forma de repositorio local.

En Eclipse, cree una variable classpath para este directorio y luego úsela para hacer referencia a su archivo jar en sus proyectos. Si tiene varios proyectos que cumplen con estas condiciones, la vida será mucho más fácil. También facilita cambiar la ubicación del directorio raíz si va de una unidad local a una de red.

En la aplicación externa, también incluirá este archivo jar desde su ubicación compartida en el classpath de las aplicaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top