[java] Intellij lancia improvvisamente ClassNotFoundException



Answers

Mi sono imbattuto in un problema simile durante la scrittura di test unitari. Tutto funzionerebbe alla riga di comando ma non è riuscito in IntelliJ. IntelliJ compilerebbe correttamente ma non eseguirà il test.

Poi ho trovato un post sul blog di IntelliJ: http://blog.jetbrains.com/idea/2014/03/intellij-idea-13-1-released/

anet dice:

21 marzo 2014 alle 12:20

Puoi rimuovere la dipendenza da junit esistente e consentire a IDEA di aggiungere la libreria JUnit per il tuo da zero.

La nuova junit non raggruppa più hamcrest ma dipende ancora da essa in runtime.

Grazie, Anna

Ho rimosso JUnit dalle impostazioni del mio progetto e ho lasciato che IntelliJ lo aggiungesse. Quindi le cose hanno funzionato bene.

Question

Sono a perdita completa qui. Ho un progetto su un disco rigido esterno chiamato LenseProject. All'interno di LenseProject, ho .idea , lib , .idea e SRC . Ho anche un numero di file di testo per la lettura.

Quando ho lasciato il lavoro la scorsa notte, tutto ha funzionato bene. Venendo in questa mattina, mi sono incontrato con:

Exception in thread "main" java.lang.ClassNotFoundException: QuadTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:188)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113) 

QuadTest è la classe principale.

Informazioni che penso potrebbero essere utili:

  • Se commento le importazioni, ottengo i messaggi di errore appropriati. (Impossibile trovare il simbolo, ecc.).

  • Ho 9 dipendenze, situate in lib \ lwjgl-2.9.0 \ jar che sono impostate in Struttura del progetto -> Librerie.

  • Il modulo ha LenseProject come root del contenuto e SRC come cartella di origine.

  • Il livello di lingua è 7.0

  • Ho le dipendenze impostate per esportare in Struttura del progetto -> Moduli -> Dipendenze.

  • Nell'output del compilatore, ho impostato su Usa percorso di compilazione del modulo, poiché il percorso di output di compilazione del progetto di ereditarietà mi ha dato "Impossibile avviare la compilazione: il percorso di output non è specificato per il modulo" LenseProject. "Specificare il percorso di output in Configura progetto.

  • Ho l'opzione VM -Djava.library.path=Natives .

  • Posso compilare ed eseguire il programma tramite prompt dei comandi senza problemi.

  • Mi mancavano le opzioni di configurazione quando ho iniziato questa mattina. Ho dovuto impostare di nuovo l'SDK e le librerie.




Prova ad andare su Preferences -> Compiler e seleziona Eclipse, piuttosto che usare javac.




Il mio problema era che tutto questo rinominando la struttura del progetto, le mie dipendenze di Maven non funzionavano.

Dopo aver cambiato le dipendenze di esperti nel file pom, ha funzionato.




So che è un post un po 'vecchio ma per me è stato utile andando in Esegui -> Modifica configurazioni -> In Applicazione Selezionate il vostro file di codice principale -> Configurazione nel pannello di destra. Selezionato "Usa JRE alternativo:" e selezionando la cartella JDK chiamata jre (... / Java / jdk.xxx_xx / jre). Applica e OK. Sono davvero nuovo con intelliJ ma questo ha risolto il mio problema spero che aiuti qualcuno.




Related