IOException: Cannot run program "javac" wenn "sudo ./sbt/sbt kompilieren" in der Funke?
Ich bin der Installation Apache Spark was nutzt eine eigene Kopie von SBT, um die Dinge so einzurichten.
Ich bin mit Linux Mint in VirtualBox VM.
Hier ist ein Ausschnitt aus der Fehlermeldung, wenn ich laufen sudo ./sbt/sbt compile
von der Funke-Verzeichnis spark-0.9.0-incubating
:
[error] (core/compile:compile) java.io.IOException: Cannot run program "javac": error=2, No such file or directory
[error] Total time: 181 s, completed Mar 9, 2014 12:48:03 PM
Kann ich java
und javac
von der Kommandozeile aus einfach gut: z.B. javac -version
gibt javac 1.6.0_31
Den richtigen jdk1.6.0_31/bin
ist in meinem PATH
.
Habe ich gelesen, dass der Fehler möglicherweise durch die 64-bit-JDK, die ich hatte installiert, aber ich bekomme den gleichen Fehler mit der 32-bit-JDK.
Wie kann ich Sortieren, die Problem?
Bearbeiten: Mithilfe der bash-shell.
JAVA_HOME
?Möglich, Duplikat der IOException: Cannot run program "javac": CreateProcess error=2, Das system kann nicht die angegebene Datei gefunden
InformationsquelleAutor foghorn | 2014-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
HAFTUNGSAUSSCHLUSS bin ich meistens raten jetzt und bin immer noch unsicher, sollte ich habe reagiert hier eher als einen Kommentar hinzuzufügen. Bis klar ist, der HAFTUNGSAUSSCHLUSS bleibt.
Beim ausführen
java
undjavac
von der Befehlszeile aus, mit welchem user bist du in diesem moment? Ich bin mir ziemlich sicher, dass deine Probleme Oberfläche, weil die Benutzer, die Sie betreiben sind anders.Bitte beachten Sie, dass Sie ausführen
sudo ./sbt/sbt compile
alsroot
(aufgrund der Art und Weisesudo
funktioniert), aber Sie sagen nichts darüber aus, was der Benutzer(s), den Sie verwendet haben, um ausführenjavac
undjava
Befehle.Hinzufügen
jdk1.6.0_31/bin
zuPATH
fürroot
und Sie werden alle gesetzt (sofern die Konfiguration von Java ist betroffen).Ich würde auch empfehlen die Einstellung
JAVA_HOME
zeigenjdk1.6.0_31
wie kann es helfen, in Zeiten -- viele Anwendungen es sind, wie die Art und Weise, um die Position von Java.Als eine Problemumgehung, die Sie Bearbeiten können
./sbt/sbt
und fügen SiePATH
undJAVA_HOME
angemessen.JAVA_HOME
für aktuellen Benutzer, aber ich weiß nicht, ob es für root festgelegt. Jeder Kommentar auf, wie sehen diePATH
desroot
Benutzer?sudo echo $PATH
gibt das gleiche wieecho $PATH
.Allerdings
sudo javac
sagt "Befehl nicht gefunden".Es kompiliert mit dem workaround
sudo -E su
gefolgt von./sbt/sbt compile
Setzen
JAVA_HOME
undPATH
Umgebungsvariablen für einen Benutzer, sagenroot
müssen Sie zum Bearbeiten der Benutzer-Profil-Dateien, sagen.bashrc
oder etwas ähnliches, das hängt von der shell. Ohne es, du gehst zu kämpfen mit fehlenden Variablen, und damit das Problem, das Sie gegenüberstellen. Ich bearbeitete die Antwort bieten einen workaround (es ist *workaround, obwohl).InformationsquelleAutor Jacek Laskowski
Müssen Sie den
javac
ausführbare Datei. Um dies zu tun in Ubuntu bitte führen Sie den folgenden Befehl ein:Es auch Orte, die es in Ihrem
path
variable.InformationsquelleAutor user219861