Forma correcta de agregar jarras externas (lib / *. Jar) a un proyecto IntelliJ IDEA

734

Al crear un nuevo proyecto Java en IntelliJ IDEA, se crean los siguientes directorios y archivos:

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

Quiero configurar IntelliJ IDEA para incluir mis JAR de dependencia en ./lib/*.jarel proyecto. ¿Cuál es la forma correcta de lograr esto en IntelliJ IDEA?

knorv
fuente
Estoy enfrentando el problema mientras ejecuto el programa en la terminal en IntelliJ. He usado la declaración de importación para usar las clases que requiero en el programa. Mientras lo ejecuto en el IDE, funciona bien. Pero cuando trato de compilar desde la línea de comando% javac MyProgram.java, dice error: no se puede encontrar el símbolo
don_Gunner94

Respuestas:

1307

Pasos para agregar frascos externos en IntelliJ IDEA:

  1. Haga clic Fileen la barra de herramientas.
  2. Estructura del proyecto ( CTRL+ SHIFT+ ALT+ Sen Windows / Linux, + ;en Mac OS X)
  3. Seleccionar módulos en el panel izquierdo
  4. Pestaña Dependencias
  5. '+' → JAR o directorios
Cambium
fuente
99
Además, considere agregar una carpeta lib y use "Adjuntar directorios jar", que agregará todos los archivos jar en la carpeta lib. Para un proyecto grande, esto evita que tenga que elegir cada frasco individualmente.
joeslice
16
Para referencia futura: ese botón "Agregar" estaba fuera del borde derecho de la ventana y pasé una cantidad excesiva de tiempo buscándolo antes de encontrar esta publicación y pensando en cambiar el tamaño de la ventana. (Esto fue en OSX 10.6.5 ...)
Daniel Dickison
77
@joeslice que solo funciona si los JAR están en la raíz del directorio, ¿verdad? No parece funcionar para JAR dentro de subdirectorios dentro de 'lib'.
Opiate
66
En IJIdea 13, hay "+"> en lugar de "agregar".
Val
44
Estoy usando IDEA 14.0.2. En lugar de Agregar, hay un símbolo +. Después de hacer clic en +, hay 3 opciones: 1. JAR o directorios 2. Biblioteca ... 3. Dependencia del módulo ...
Ripon Al Wasim
239

IntelliJ IDEA 15 y 2016

  1. Archivo > Estructura del proyecto ...

    Archivo> Estructura del proyecto

    o presione Ctrl+ Alt+ Shift+S

  2. Configuración del proyecto > Módulos > Dependencias > signo " + "> JAR o directorios ...

    Módulos> Dependencias> JAR o directorios

  3. Seleccione el archivo jar y haga clic en Aceptar, luego haga clic en otro botón Aceptar para confirmar

    ingrese la descripción de la imagen aquí

    ingrese la descripción de la imagen aquí

  4. Puede ver el archivo jar en la carpeta "Bibliotecas externas"

    ingrese la descripción de la imagen aquí

RUMANIA_ingeniero
fuente
De hecho, creo un nuevo Módulo en el panel "Módulos" (llamado por ejemplo "JarsForLogging"), luego agrego todos los frascos que necesito (ubicados en algún directorio lejos del árbol del proyecto) a este nuevo Módulo y marco los frascos como " Exportar". Finalmente, agrego el Módulo recién creado a las dependencias del Módulo original. Un poco más jerárquico de esa manera.
David Tonhofer
Además: asegúrese de que los permisos del sistema de archivos estén configurados correctamente para los .jararchivos. Úselo chmodpara modificarlos en Linux o MacOS.
JJD
44
Todavía funciona en 2018 (año y versión IntelliJ). Gracias. De esta manera puedo cargar y usar las bibliotecas Armed Bear Common Lisp desde IntelliJ, ¡increíble!
Jason Robinson el
Sí. Funciona bien con mi IntelliJ también. ¡Gracias!
Bms bharadwaj
1
@ don_Gunner94, a través de la línea de comando, también debe proporcionar el frasco de esta manera:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer
118

Simplemente copie y pegue el archivo .jar debajo de la carpeta "libs" (o la carpeta "libs" completa), haga clic derecho sobre él y seleccione la opción 'Agregar como biblioteca' de la lista. Hará el resto ...

ingrese la descripción de la imagen aquí

gurkan
fuente
Más simple y la forma en que estamos acostumbrados desde tiempos de Eclipse.
Sufian
3
Llano y simple !!
Anaximandro Andrade
3
Es un poco molesto que todavía pida un "nombre", entonces, ¿puedes dejar basura allí?
dividebyzero
¡Esto también me ayudó!
Preeti Joshi
Estoy enfrentando el problema mientras ejecuto el programa en la terminal en IntelliJ. He usado la declaración de importación para usar las clases que requiero en el programa. Mientras lo ejecuto en el IDE, funciona bien. Pero cuando intento compilar desde la línea de comandos% javac MyProgram.java, dice error: no se puede encontrar el símbolo. -
don_Gunner94
20

Los agrega como bibliotecas a su módulo.

Por lo general, tengo un /libdirectorio en mi fuente. Puse todos los JAR que necesito allí, agregué / lib como biblioteca y lo hice parte de las dependencias de mi módulo.

Actualización 2018: estoy usando IntelliJ 2017/2018 ahora.

Estoy totalmente comprometido con Maven y Nexus para la gestión de dependencias.

Así ha ido el mundo. Todos los proyectos Java de código abierto que conozco usan Maven o Gradle. Tu también deberías.

duffymo
fuente
Sí, pero ¿qué pasa si el Maven pom no se llama pom.xml? Entonces parece que no puedo leer las dependencias de Maven.
user1001630
44
Convención es llamarlo pom.xml. Siga la convención y cambie el nombre de su archivo.
duffymo
Todavía encuentro la necesidad, cuando el frasco no tiene un repositorio maven ... pero no entiendo cómo hacerlo correctamente. Entiendo cómo agregar un directorio, simplemente no entiendo cómo hacerlo, también importa los javadocs. funciona cuando agrego un jar como un solo archivo, pero no si agrego un directorio. ¿Simplemente no es posible?
ycomp
Este es un buen consejo. Agregar tarros manualmente lleva mucho tiempo y es propenso a errores. Sus dependencias siempre deben configurarse "a través del código", en pom.xml(para maven) o lo que sea equivalente para gradle.
vikingsteve
1
Todos los JAR tienen un repositorio. Si no está disponible en un repositorio público o privado, puede instalarlo manualmente en su .m2 local. No hay razón para hacer lo contrario.
duffymo
17

Si está creando su proyecto con gradle, solo necesita agregar una línea a las dependencias en build.gradle:

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

y luego agregue la carpeta a su proyecto o módulo raíz:

ingrese la descripción de la imagen aquí

Luego dejas caer los frascos y estás listo para ir :-)

cesards
fuente
Estoy enfrentando el problema mientras ejecuto el programa en la terminal en IntelliJ. He usado la declaración de importación para usar las clases que requiero en el programa. Mientras lo ejecuto en el IDE, funciona bien. Pero cuando intento compilar desde la línea de comandos% javac MyProgram.java, dice error: no se puede encontrar el símbolo. -
don_Gunner94
7

Yo uso este método y funciona bien:

1- Copia y pega los .jararchivos debajo de la libscarpeta.

2- Agregar compile fileTree(dir: 'libs', include: '*.jar')a dependenciesy build.gradleluego libsse incluirán todos los frascos en la carpeta.

3- Haga clic derecho en la libscarpeta y seleccione la opción 'Agregar como biblioteca' de la lista.

Ali Hesari
fuente
¡Gracias, esto fue lo único que funcionó para mí!
Gregordy
Estoy enfrentando el problema mientras ejecuto el programa en la terminal en IntelliJ. He usado la declaración de importación para usar las clases que requiero en el programa. Mientras lo ejecuto en el IDE, funciona bien. Pero cuando intento compilar desde la línea de comandos% javac MyProgram.java, dice error: no se puede encontrar el símbolo.
don_Gunner94
5

Las bibliotecas no se pueden usar directamente en ningún programa si no se agregan correctamente a los archivos gradle del proyecto.

Esto se puede hacer fácilmente en IDE inteligentes como Intel J.

1) Primero, como convención, agregue una carpeta con los nombres 'libs' debajo del archivo src de su proyecto. (esto se puede hacer fácilmente usando el IDE mismo)

2) luego copie o agregue su archivo de biblioteca (por ejemplo: archivo .jar) a la carpeta llamada 'libs'

3) ahora puede ver el archivo de la biblioteca dentro de la carpeta libs. Ahora haga clic derecho en el archivo y seleccione 'agregar como biblioteca'. Y esto solucionará todos los archivos relevantes en su programa y la biblioteca estará directamente disponible para su uso.

Tenga en cuenta:

Siempre que agregue bibliotecas a un proyecto, asegúrese de que el proyecto sea compatible con la biblioteca

Keet Sugathadasa
fuente
3

Una gran ayuda encontrada aquí. Sin embargo, todavía no pude hacerlo funcionar a pesar de cargar JAR correctamente. Más tarde descubrí que accidentalmente creé un módulo en la estructura de archivos en lugar de una carpeta normal y este mismo módulo fue preseleccionado en la configuración del proyecto.

Aquí está la huella:

Archivo -> Estructura del proyecto -> Módulos -> (seleccione el módulo adecuado si tiene más) -> Dependencias -> + -> JAR o Bibliotecas

Rolland
fuente
3

Si bien estoy de acuerdo con las respuestas anteriores, es importante tener en cuenta cómo acceder al código de esas bibliotecas externas.

Por ejemplo, para acceder a una clase en la biblioteca externa, querrá usar la palabra clave de importación seguida del nombre de la biblioteca externa, continuó con la notación de puntos hasta llegar a la clase deseada.

Mire la imagen a continuación para ver cómo importo la clase CodeGenerationException de la biblioteca quickfixj.

ingrese la descripción de la imagen aquí

Crt
fuente