Come aggiungere la directory al percorso di classe in un profilo di esecuzione dell'applicazione in IntelliJ IDEA?


206

Sto cercando di aggiungere una directory al percorso di classe di un profilo di esecuzione dell'applicazione

Se eseguo l'override utilizzando -cp x: target / classes nelle impostazioni della VM, viene visualizzato il seguente errore:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

Qualche idea su come aggiungere una directory al percorso di classe per il mio progetto?


1
Non mi è chiaro dove stai cercando di aggiungerlo. Dalla riga di comando IJ? O nelle proprietà del progetto?
Heiko Rupp,

Risposte:


270

In Intellij 13, sembra di nuovo leggermente diverso. Ecco le istruzioni per Intellij 13:

  1. fai clic sulla vista Progetto o scoprila facendo clic sul pulsante "1: Progetto" sul bordo sinistro della finestra o premendo Alt + 1
  2. trova il tuo progetto o sottomodulo e fai clic su di esso per evidenziarlo, quindi premi F4 o fai clic con il pulsante destro del mouse e scegli "Apri impostazioni modulo" (su IntelliJ 14 è diventato F12)
  3. fai clic sulla scheda Dipendenze
  4. Fai clic sul pulsante "+" sulla destra e seleziona "Barattoli o directory ..."
  5. Trova il tuo percorso e fai clic su OK
  6. Nella finestra di dialogo "Scegli categorie di file selezionato", scegli Classes(anche se si tratta di proprietà), premi nuovamente OK e OK
  7. Ora puoi eseguire la tua applicazione e avrà il percorso selezionato nel percorso della classe

2
Quindi, come creeresti per eseguire configurazioni con due diverse directory che devono essere presenti esclusivamente in una ma non nell'altra. In eclipse puoi aggiungere / rimuovere qualsiasi cosa in una configurazione di avvio. IntelliJ non supporta questo?
Καrτhικ,

9
È abbastanza chiaro che puoi cambiare il percorso di classe della configurazione di esecuzione cambiando il percorso di classe del modulo . Ma la domanda esatta era "come aggiungere la directory al percorso di classe in un profilo di esecuzione dell'applicazione ". Quindi il vero fu dato da Uaquario
Pavel Vyazankin il

Grazie ! Questo ha risolto il mio problema dopo secoli di ricerche!
JonasCz - Ripristina Monica

1
Il passaggio 6 non mi viene in mente. Sono su intellij 14. Ho una cartella chiamata lib in cui si trovano i miei .jar. selezionando la cartella o il barattolo verrà semplicemente analizzato il percorso in intellij. continua a non funzionare
Takeru il

@Takeru L'hai capito?
rosshamish,

91

Sembra che IntelliJ 11 abbia modificato il metodo e la risposta selezionata non funziona più per me. Nel caso in cui qualcun altro arrivi qui tramite un motore di ricerca, ecco come l'ho risolto in IntelliJ 11:

  1. Vai alla struttura del progetto, fai clic su Moduli e fai clic sul modulo
  2. Scegli la scheda "Dipendenze"
  3. Fai clic sul pulsante "+" sul lato destro e seleziona "Barattoli o directory ..."
  4. Aggiungi la directory o le directory che desideri (nota che puoi selezionare più voci) e fai clic su OK
  5. Nella finestra di dialogo che viene visualizzata, seleziona "classi" e NON "directory jar"
  6. Assicurati di utilizzare quel modulo nel tuo obiettivo di corsa

Si noti che il passaggio 5 sembra essere la differenza fondamentale. Se selezioni "directory jar" apparirà esattamente lo stesso nell'IDE ma non includerà il percorso in fase di esecuzione. Sembra che non ci sia modo di determinare se in precedenza hai selezionato "classi" o "directory jar" dopo il fatto.


4
Grazie mille per aver pubblicato questo. Mi hai appena risparmiato circa un'ora.
John Jiang,

Ho lo stesso problema di prima con IJ11 ed ero felice di trovare una risposta che mi aspettava questa volta.
sal

Perfetto. Stesso processo per IJ12. Mi sono imbattuto in questo post nel tentativo di risolvere "java.lang.ClassNotFoundException: com / microsoft / jdbc / sqlserver / SQLServerDriver" Ciò ha risolto il problema di connessione. Grazie
jkmurphy1 il

6
Non capisco il passaggio 5 :( La finestra di dialogo non si apre.
Charles Wood,

1
@CharlesWood: quando volevo selezionare due cartelle con una contenente le sottocartelle. Ho dovuto espandere quello contenente le sottocartelle tramite il piccolo simbolo a forma di freccia accanto al nome della cartella per visualizzare la finestra di dialogo. Altrimenti, la finestra di dialogo verrebbe ignorata.
Timo Reimann,

35

Puoi provare -Xbootclasspath / a: opzione path del programma di avvio dell'applicazione Java. Per descrizione specifica "un percorso separato da due punti di direttori, archivi JAR e archivi ZIP da aggiungere al percorso di classe bootstrap predefinito".


2
Alcuni documenti su come funziona -Xbootclasspath: docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
Lambart

3
Questa è una buona risposta in quanto non richiede di modificare la configurazione del progetto. In effetti penso che risponda meglio alla domanda.
Chewy,

1
Questo purtroppo non ha funzionato per me, poiché ciò comporta che tutte le classi caricate da quel percorso di classe vengano caricate dal caricatore di classi bootstrap, che rompe il codice che presuppone che Xyz.class.getClassLoader () non sia null.
Njol,

@uaaquarius, Perché non c'è modo di modificare direttamente la stringa della riga di comando? Questo è frustrante.
Pacerier,

@uaaquarius, Perché se aggiungo mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jarcome dipendenza usando l'altro metodo su stackoverflow.com/a/16742141/632951 funziona, ma farlo -Xbootclasspath/anon lo fa?
Pacerier,

19

Sto usando Idea 8. nella scheda Dipendenze del tuo modulo (nella finestra di dialogo della struttura del progetto). Aggiungi una "Libreria moduli". Lì puoi selezionare una Directory Jar da aggiungere. Quindi assicurarsi che il profilo di esecuzione stia utilizzando Classpath e JDK del modulo corretto durante l'esecuzione (ciò si trova nella finestra di dialogo di configurazione della corsa.



2

Supponiamo di aver bisogno solo di x: target / classi nel tuo percorso di classe. Quindi aggiungi semplicemente questa cartella al tuo percorso di classe e% IDEA% \ lib \ idea_rt.jar. Ora funzionerà. Questo è tutto.


4
La domanda è: come si aggiunge questa cartella al percorso di classe in IDEA?
Pacerier,

0

Non è necessario specificare la cartella delle classi. Intellij dovrebbe essere in grado di caricarlo. Questo errore verrà visualizzato se "Output del compilatore di progetto" è vuoto.

Assicurati solo che sia impostato il valore seguente: Impostazioni progetto -> Progetto -> Output del compilatore di progetto nella cartella ProjectDir / out

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.