Ho ricevuto un progetto IntelliJ da qualcun altro, ma per me non eseguirà nemmeno le classi più semplici.ClassNotFoundException in IntelliJ IDEA
Come esempio veloce, la seguente classe getterà un ClassNotFoundException
senza errori di compilazione:
package myPackage;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println("Soon our GUI will start from here!");
System.exit(0);
}
}
Questo getterà il seguente errore:
Exception in thread "main" java.lang.ClassNotFoundException: myPackage.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:260)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:116)
Process finished with exit code 1
La struttura del file è il seguente: <git root>
/src
/myPackage
/Main.java
Ho impostato la cartella 'src' come 'cartella sorgente'. La mia applicazione non ha errori del compilatore. Ho invalidato le cache più volte, ma senza alcun effetto. Nelle impostazioni del mio modulo le dipendenze del modulo contengono <Module source>
e jdk 1.8.
Non riesco a trovare la risposta da queste parti (google) ovunque, e per me sembra che questo errore abbia a che fare con il modo in cui IntelliJ gestisce il progetto. Quando ho estratto il progetto per la prima volta, la cartella src
NON era stata impostata come cartella di origine, il che probabilmente significa che potrei perdere anche altre impostazioni.
Il repository git contiene un progetto intellij? Se è così, è probabile che si tratti del problema. Tipicamente quando si gestisce un progetto, il 90% dei file di progetto non sono rilevanti per il codice e possono essere specifici per macchina/OS. È meglio gitignore dei file di progetto e creare un nuovo progetto su ciascuna macchina per sviluppatori. Suggerirei di cancellare il progetto (non il codice) e di crearne uno nuovo. Quindi gitignore tutti i file intellij per evitare questo in futuro –
@ZackNewsham Cosa intendi per "progetto"? La cartella .idea? – yts
@yts esattamente, è lo stesso per tutti i netbeans di IDE è un nbproject però. –