IntelliJ Idea sotto Linux, nessun file o directory nella class principale

Sto eseguendo IntelliJ Idea sotto linux. Ho creato un progetto e un modulo al suo interno, e in quel modulo ho una class (MyClass.class) e quando cerco di eseguirlo da IDE, ottengo

ERRORE: MyClass.class (Nessun file o directory di questo tipo)

Qualcuno può spiegarmi perché IntelliJ Idea non riconosce le classi all’interno del mio modulo? So che dovrebbe essere un problema per quanto riguarda le impostazioni del modulo, ma non riesco a capirlo. Sto usando Ubuntu 11.10

OK posto qui i percorsi e tutto per tutti da vedere 🙂

digitare : echo $ PATH
Risultato: / usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / lib / jvm / java-7-openjdk-i386 / bin: / usr / lib / jvm / java-7-openjdk-i386 / bin: / usr / lib / jvm / java-7-openjdk-i386 / bin

digitare: echo $ JAVA_HOME Risultato:
/ Usr / lib / jvm / java-7-openjdk-i386

digitare: ./idea.sh Risultato: NOTA: se sono installati sia Sun JDK che OpenJDK, convalidare i punti variabili di ambiente IDEA_JDK o JDK_HOME sull’installazione Sun JDK valida

Arkde, ho una ansible spiegazione del perché la soluzione di Jaroslav con JDK7 non ha funzionato per te.

Forse hai combinato versioni Java in vari oggetti alternativi , forse in conflitto con la versione a cui le variabili di ambiente come JAVA_HOME e JDK_HOME puntano?

Forse qualcosa punta al link simbolico /usr/lib/jvm/default-java come home di JDK e quel collegamento simbolico punta a una versione diversa di JDK del previsto?

Hai provato a reimpostare le alternative per tutti gli strumenti Java alla versione 7? Come questo:

 update-java-alternatives --list # ...see what JDK's are available, choose the one that corresponds to Java 7 # and set it to be the default in alternatives: sudo update-java-alternatives --set java-1.7.0-openjdk-amd64 # or interactively: sudo update-alternatives --config java 

Cosa emettono i seguenti comandi sul sistema?

 echo $JAVA_HOME echo $JDK_HOME ls -l /usr/lib/jvm/default-java update-java-alternatives --list update-alternatives --list java 

Ho avuto esattamente lo stesso problema. Ho eseguito strace sul processo Idea e nel registro ho visto che cercava di aprire diversi file .class senza il percorso specificato – come open("SomeClass.class", O_RDONLY) = -1 ENOENT (No such file or directory) – nessun percorso alla directory di output del progetto e al pacchetto appropriato.

Quindi ho apt-get installato JDK 7 lungo JDK 6:

 apt-get install openjdk-7-doc openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless openjdk-7-jre-lib openjdk-7-source 

In Ubuntu 11.10 Oneiric, OpenJDK 6 non è rimovibile se si desidera OpenJDK 7. JDK 7 dipende da JDK 6 …

Quindi ho:

  1. configurazione delle alternative aggiornate come sopra specificato,
  2. modificato il link simbolico /usr/lib/jvm/default-java in modo che punti a java-7-openjdk-amd64 ,
  3. ho controllato due volte tutte le variabili d’ambiente (i miei JAVA_HOME e JDK_HOME puntano entrambi su /usr/lib/jvm/default-java ),
  4. riconfigurato l’SDK del mio progetto in modo appropriato (e per tutti i moduli del progetto),

e voilà – problema risolto!

Risolto. Rimuovi tutto il jdk / jre che hai, installa openjdk7.

Aggiungi questa riga a .bashrc

 export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/ export PATH=$PATH:$JAVA_HOME/bin 

Esegui idea. Profitto. 🙂

Ho avuto lo stesso problema. Quello che ho scoperto è che la versione Java di base dell’intero sistema non ha importanza, quindi non è necessario impostare JAVA_HOME o update_alternatives . Tutto quello che dovevo fare era cambiare alcune impostazioni in IDEA:

  • Aggiungi un SDK Java, OpenJDK 7 o Oracle JDK 6 o 7 ( File -> Project structure -> SDKs )
  • Selezionalo come Project SDK ( File -> Project structure -> Project )

Verifica che la casella di controllo Crea sia abilitata, altrimenti IDEA non compilerà il tuo progetto, verificherà anche che il file di class sia disponibile nella directory di output e che tu stia correndo con il classpath del modulo corretto.

Se il problema persiste, inviare un progetto di esempio da supportare.

Ho incontrato lo stesso problema: ho spostato i miei progetti (e le impostazioni Idea) da un laptop con Ubuntu 10.04 e sun-jdk-6 su un PC con Ubunty 11.10 e openjdk-6. Dopo la ricostruzione del progetto ho ottenuto errori MyClass.class (No Such file or directory) per TUTTE le classi.

Grazie a Jaroslav, la sua (quasi) soluzione ha aiutato – non riesco a spiegarne il motivo, forse funzionerebbe anche con sun-jdk-6 … Così ho installato openjdk-7, senza rimuovere openjdk-6, e settimo settimo come JDK di un progetto in Idea. (Non ho modificato nulla nelle variabili di ambiente.) Con jdk7 è stato compilato.

PS Dovrei averlo scritto come commento al post di Jaroslav, non una risposta separata, ma non ho ancora abbastanza reputazione per farlo …

Prova a eseguire IDEA utilizzando

sh -c "export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 && ./idea.sh"

Quando inizia premi Ctrl+Alt+Shift+S per aprire la finestra di dialogo Impostazioni progetto . Nel pannello di sinistra selezionare Project e verificare che Project SDK sia configurato correttamente (almeno non è rosso).