Modo corretto per aggiungere vasi esterni (lib / *. Jar) a un progetto IntelliJ IDEA


734

Quando si crea un nuovo progetto Java in IntelliJ IDEA, vengono creati i seguenti file e directory:

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

Voglio configurare IntelliJ IDEA per includere i miei JAR di dipendenza nel ./lib/*.jarprogetto. Qual è il modo corretto per raggiungere questo obiettivo in IntelliJ IDEA?


Sto affrontando il problema durante l'esecuzione del programma nel terminale in IntelliJ. Ho usato la dichiarazione di importazione per usare le classi richieste nel programma. Mentre lo eseguo nell'IDE, funziona bene. Ma quando provo a compilare dalla riga di comando% javac MyProgram.java, viene visualizzato l'errore: impossibile trovare il simbolo
don_Gunner94

Risposte:


1306

Passaggi per l'aggiunta di vasetti esterni in IntelliJ IDEA:

  1. Fai clic Filesulla barra degli strumenti
  2. Struttura del progetto ( CTRL+ SHIFT+ ALT+ Ssu Windows / Linux, + ;su Mac OS X)
  3. Seleziona Moduli sul pannello di sinistra
  4. Scheda Dipendenze
  5. '+' → JAR o directory

99
Inoltre, considera l'aggiunta di una cartella lib e usa "Allega directory Jar", che aggiungerà tutti i barattoli nella cartella lib. Per un progetto di grandi dimensioni, questo ti impedisce di dover scegliere ogni vaso singolarmente.
joeslice,

16
Per riferimento futuro: quel pulsante "Aggiungi" era fuori dal bordo destro della finestra e ho trascorso una quantità eccessiva di tempo a cercarlo prima di trovare questo post e pensare di ridimensionare la finestra. (Questo era su OSX 10.6.5 ...)
Daniel Dickison,

7
@joeslice che funziona solo se i JAR sono nella directory root, giusto? Non sembra funzionare per JAR all'interno di sottodirectory all'interno di 'lib'.
Opyate,

6
In IJIdea 13, c'è "+"> invece di "aggiungi".
Val

4
Sto usando IDEA 14.0.2. Invece di Aggiungi c'è + simbolo. Dopo aver fatto clic su + sono disponibili 3 opzioni: 1. JAR o directory 2. Libreria ... 3. Dipendenza del modulo ...
Ripon Al Wasim

239

IntelliJ IDEA 15 e 2016

  1. File > Struttura del progetto ...

    File> Struttura del progetto

    oppure premere Ctrl+ Alt+ Shift+S

  2. Impostazioni progetto > Moduli > Dipendenze > Segno " + "> JAR o directory ...

    Moduli> Dipendenze> JAR o directory

  3. Seleziona il file jar e fai clic su OK, quindi fai clic su un altro pulsante OK per confermare

    inserisci qui la descrizione dell'immagine

    inserisci qui la descrizione dell'immagine

  4. È possibile visualizzare il file jar nella cartella "Librerie esterne"

    inserisci qui la descrizione dell'immagine


In realtà creo un nuovo modulo nel riquadro "Moduli" (chiamato ad esempio "JarsForLogging"), quindi aggiungo tutti i barattoli di cui ho bisogno (situati in una directory lontana dall'albero del progetto) a questo nuovo modulo e contrassegnare i barattoli come " Esportare". Infine, aggiungo il modulo appena creato alle dipendenze del modulo originale. Un po 'più gerarchico in quel modo.
David Tonhofer,

Inoltre: assicurarsi che le autorizzazioni del file system siano impostate correttamente per i .jarfile. Utilizzare chmodper modificarli su Linux o MacOS.
JJD

4
funziona ancora nel 2018 (anno e versione IntelliJ). Grazie. In questo modo posso caricare e utilizzare le librerie Armed Bear Common Lisp da IntelliJ, fantastico!
Jason Robinson,

Sì. Funziona bene anche con il mio IntelliJ. Grazie!
Bms bharadwaj,

1
@ don_Gunner94, tramite riga di comando, dovresti anche fornire il vaso in questo modo:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

118

Basta copiare e incollare il file .jar nella cartella "libs" (o tutta la cartella "libs"), fare clic destro su di esso e selezionare l'opzione "Aggiungi come libreria" dall'elenco. Farà il resto ...

inserisci qui la descrizione dell'immagine


Più semplice e il modo in cui siamo abituati a fare fin dai tempi di Eclipse.
Sufian,

3
Chiaro e semplice!!
Anaximandro Andrade,

3
È un po 'fastidioso che ti chieda ancora un "nome", allora puoi lasciare qualche spazzatura lì dentro?
dividebyzero,

Anche questo mi ha aiutato!
Preeti Joshi,

Sto affrontando il problema durante l'esecuzione del programma nel terminale in IntelliJ. Ho usato la dichiarazione di importazione per usare le classi richieste nel programma. Mentre lo eseguo nell'IDE, funziona bene. Ma quando provo a compilare dalla riga di comando% javac MyProgram.java, viene visualizzato l'errore: impossibile trovare il simbolo. -
don_Gunner94

20

Li aggiungi come librerie al tuo modulo.

Di solito ho una /libdirectory nella mia fonte. Ho messo tutti i JAR di cui ho bisogno lì, aggiungo / lib come libreria e ne faccio parte delle dipendenze del mio modulo.

Aggiornamento 2018: sto usando IntelliJ 2017/2018 ora.

Sono totalmente impegnato con Maven e Nexus per la gestione delle dipendenze.

Questo è il modo in cui il mondo è andato. Ogni progetto Java open source che conosco utilizza Maven o Gradle. Dovresti anche tu.


Sì, e se il pom Maven non si chiamasse pom.xml? Quindi sembra che non riesca a leggere le dipendenze di Maven.
user1001630

4
La convenzione è chiamarlo pom.xml. Segui la convenzione e rinomina il tuo file.
Duffymo,

Trovo ancora la necessità, quando il barattolo non ha un repo di Maven ... ma non capisco come farlo correttamente. Capisco come aggiungere una directory, ma non capisco come ottenerlo importa anche i javadocs. funziona quando aggiungo un barattolo come singolo file, ma non se aggiungo una directory. Semplicemente non è possibile?
ycomp

Questo è un buon consiglio. L'aggiunta manuale di vasetti richiede tempo e tende a errori. Le tue dipendenze dovrebbero sempre essere configurate "via codice", in pom.xml(per maven) o qualunque sia l'equivalente per gradle.
vikingsteve,

1
Tutti i JAR hanno un repository. Se non è disponibile in un repository pubblico o privato, è possibile installarlo manualmente nel proprio .m2 locale. Non c'è motivo di fare diversamente.
Duffymo,

17

Se stai costruendo il tuo progetto con gradle, devi solo aggiungere una riga alle dipendenze in build.gradle:

buildscript {
    ...
}
...

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

e quindi aggiungi la cartella al tuo progetto o modulo root:

inserisci qui la descrizione dell'immagine

Quindi lascia cadere i barattoli e sei a posto :-)


Sto affrontando il problema durante l'esecuzione del programma nel terminale in IntelliJ. Ho usato la dichiarazione di importazione per usare le classi richieste nel programma. Mentre lo eseguo nell'IDE, funziona bene. Ma quando provo a compilare dalla riga di comando% javac MyProgram.java, viene visualizzato l'errore: impossibile trovare il simbolo. -
don_Gunner94

7

Uso questo metodo e funziona bene:

1- Copia e incolla i .jarfile nella libscartella.

2- Aggiungi compile fileTree(dir: 'libs', include: '*.jar')a dependenciesin build.gradlequindi libsverranno inclusi tutti i vasetti nella cartella.

3- Fare clic con il tasto destro sulla libscartella e selezionare l'opzione 'Aggiungi come libreria' dall'elenco.


Grazie, questa è stata l'unica cosa che ha funzionato per me!
Gregordy,

Sto affrontando il problema durante l'esecuzione del programma nel terminale in IntelliJ. Ho usato la dichiarazione di importazione per usare le classi richieste nel programma. Mentre lo eseguo nell'IDE, funziona bene. Ma quando provo a compilare dalla riga di comando% javac MyProgram.java, viene visualizzato l'errore: impossibile trovare il simbolo.
don_Gunner94,

5

Le librerie non possono essere utilizzate direttamente in nessun programma se non vengono aggiunte correttamente ai file di livello del progetto.

Questo può essere fatto facilmente in IDE intelligenti come inteli J.

1) Per prima cosa, come convenzione, aggiungi una cartella "libs" sotto il tuo file di progetto src. (questo può essere fatto facilmente usando l'IDE stesso)

2) quindi copia o aggiungi il tuo file di libreria (es. File .jar) nella cartella "libs"

3) ora puoi vedere il file della libreria nella cartella libs. Ora fai clic destro sul file e seleziona 'aggiungi come libreria'. E questo risolverà tutti i file rilevanti nel tuo programma e la libreria sarà direttamente disponibile per il tuo uso.

Notare che:

Ogni volta che si aggiungono librerie a un progetto, assicurarsi che il progetto supporti la libreria


3

Un grande aiuto trovato qui. Tuttavia, non riuscivo ancora a farlo funzionare nonostante il caricamento corretto di JAR. Ho scoperto in seguito che ho creato accidentalmente il modulo nella struttura del file anziché la cartella normale e questo modulo è stato preselezionato nell'impostazione del progetto.

Ecco l'impronta:

File -> Struttura del progetto -> Moduli -> (seleziona il modulo corretto se ne hai di più) -> Dipendenze -> + -> JAR o Librerie


3

Mentre sono d'accordo con le risposte precedenti, è importante notare come accedere al codice di quelle librerie esterne.

Ad esempio, per accedere a una classe nella libreria esterna, dovrai usare la parola chiave import seguita dal nome della libreria esterna, continuando con la notazione a punti fino a raggiungere la classe desiderata.

Guarda l'immagine qui sotto per vedere come importare la classe CodeGenerationException dalla libreria quickfixj.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.