it-swarm.com.de

JAVA_HOME verweist nicht auf das JDK

Ich versuche, einem Tutorial zu folgen, wie Sie mit ant Ihre Anwendung erstellen und ausführen können. Ich habe alle Schritte befolgt und die Build-Datei erstellt, aber wenn ich versuche, ant auszuführen, wird mir dieser Fehler angezeigt.

BUILD FAILED /home/bilal/tmp/ant/build.xml:19: Es wurde kein Javac-Compiler gefunden; com.Sun.tools.javac.Main befindet sich nicht im Klassenpfad . Vielleicht verweist Java_HOME nicht auf das JDK . Es ist derzeit auf "/ usr/lib/jvm/Java-6-openjdk/jre" eingestellt.

Irgendwelche Ideen, wie man dieses Problem lösen kann?

29
comatose

Geben Sie an, dass die Variable Java_HOME auf eine jdk - Installation verweist, nicht auf jre .

Sie beziehen sich auf die Laufzeitumgebung, nicht auf das Entwicklungskit. Der Compiler kann nicht gefunden werden, da er nicht vorhanden ist.

Aus der Zeile, die Sie gepostet haben und die Sie über open-jdk verfügen, können Sie den jre am Ende einfach entfernen:

export Java_HOME='/usr/lib/jvm/Java-6-openjdk/'
27
NimChimpsky

Sie haben Java ... installiert.

apt-get install default-jre

Aber nicht dieJDK...

apt-get install default-jdk
24
user2708687

Dies ist beabsichtigt. Sie können Java.home (die eine Java.lang.System-Eigenschaft ist) nicht austauschbar mit der Einstellung von Java_HOME in der Betriebssystemumgebung verwenden. Sie versuchen wahrscheinlich, den Speicherort des Java-Compilers mit einem grundlegend anderen Wert von einer anderen Eigenschaftsebene zu bestätigen - dh Java.home (von Ants Java-Interna) zeigt auf die Java-Laufzeitumgebung bei <any_installed_Java_pointed_to_by_ant>/jre, während JDK_HOME (aus der Betriebssystemumgebung). ist normalerweise auf <DOWNLOADED_AND_INSTALLED_Java_DEVELOPMENT_KIT> eingestellt. 

Sehen Sie sich meine Frage und Antwort hier für weitere Details an: Wo setzt Ant sein 'Java.home' (und ist es falsch) und soll '/ jre' angehängt werden?

Die Lösung besteht darin, mithilfe von ${env.Java_HOME} auf die Systemumgebungseigenschaft in Ant zuzugreifen. Legen Sie fest, welches Java explizit in der Javac-Task verwendet werden soll, indem Sie die executable-Eigenschaft auf den javac-Pfad und die fork-Eigenschaft auf yes setzen (siehe Javac-Task-Dokumentation von Ant ). Auf diese Weise spielt es keine Rolle, in welcher Java-Umgebung Ant ausgeführt wird. Der Compiler ist immer eindeutig angegeben!

13
ingyhere

Ich weiß, dass diese Frage alt ist, aber die akzeptierte Antwort funktioniert nicht mehr und da dies der erste Link bei Google ist, werde ich sagen, wie ich dieses Problem gelöst habe.

für Eclipse mit Ubuntu:

gehen Sie zu Window-> Preferences-> Ant-> Runtime-> Select Ant_Home_Entries und klicken Sie auf Add externe jars. Suchen Sie dann im Datei-Explorer nach, wo sich Ihre jdk (standardmäßig in/usr/lib/jvm /) und im lib-Ordner Ihres befindet jdk findest du die tool.jar. Wählen Sie diese aus und klicken Sie auf Übernehmen.

versuchen Sie, Ihr Projekt zu erstellen, und die Dinge sollten funktionieren!

hinweis: Ich hatte Ameise schon lange nicht benutzt, brauchte sie aber für ycsb couchbase workload generator ( http://www.couchbase.com/wiki/display/couchbase/Load+Generator+Setup ), wenn jemand da ist Ich blieb dabei hängen. 

4
dtrihinas

Es sieht so aus, als würden Sie Java_HOME derzeit auf /usr/lib/jvm/Java-6-openjdk/jre verweisen, der als JRE und nicht als JDK erscheint. Setzen Sie Java_HOME auf /usr/lib/jvm/Java-6-openjdk.

Die JRE enthält keinen Java-Compiler, sondern nur das JDK (Java Developer Kit).

3
Michael

Ich verwende Windows 7 und habe mit dem gleichen Problem zu kämpfen. Ich habe es behoben, indem ich meine Umgebungsvariablen geändert habe. 

Um Ihre Umgebungsvariablen zu ändern klicken Sie hier

Ich habe ";% Java_HOME%/bin" an die Ende der Pfadvariable angehängt, eine neue "Java_HOME" -Variable hinzugefügt und ihren Wert auf die Position meines JDK "C:\Programme\Java\jdk1.8.0_11" gesetzt. Danach habe ich meine Node.js-Eingabeaufforderung neu gestartet und es hat funktioniert.

Bitte beachten Sie, dass Ihr JDK-Verzeichnis von meinem abweichen kann. Abhängig von Ihrem Setup müssen Sie möglicherweise den Computer neu starten, nachdem Sie die Umgebungsvariablen festgelegt haben. 

2
user2941971

Ich habe die tools.jar-Datei gerade aus dem Ordner JDK\lib in den Ordner JRE\lib kopiert. Seitdem hat es wie ein Champion funktioniert.

Ich hatte ein ähnliches Problem und es stellte sich heraus, dass das Problem beide Versionen 6 und 7 von OpenJDK war. Die Antwort kommt von r-senior in den Ubuntu-Foren ( http://ubuntuforums.org/showthread.php?t=1977619 ) --- Deinstalliere einfach Version 6:

Sudo apt-get remove openjdk-6-*

stellen Sie sicher, dass Java_HOME und CLASSPATH auf nichts gesetzt sind, da dies nicht das Problem ist. 

1
user2330392

Das Java_HOME, das Sie oben haben, zeigt nur auf die JRE, die den Compiler nicht enthält. Setzen Sie Ihren Java_HOME auf

/usr/lib/jvm/Java-6-openjdk

...und versuche es noch mal.

1

Ich habe dieses Problem in Rhel, meinem "Java_HOME =/usr/lib/jvm/Java-1.8.0-openjdk" (was ein symbolischer Link ist) und einer Beschwerde gefunden.

Meine Lösung dafür ist die Verwendung des echten jdk-Pfads in Java_HOME wie: 

Java_HOME =/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64

Für mich geht das.

1
h.chen

Unter Jenkins klagt es wie folgt:

/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/ sieht nicht aus wie ein JDK-Verzeichnis

Grund: Es konnte kein Dev Kit für JDK gefunden werden.

Lösung:

Stellen Sie sicher, dass Sie das openjdk-devel -Paket zusammen mit Ihrer JDK-1.8 * -Version installieren und mit: # source ~/.bash_profile erneut exportieren

0
Sid_R

für centos yum -y muss Java-1.7.0-openjdk-devel.x86_64 installiert werden

und aktualisieren Sie Java_HOME =/usr/lib/jvm/Java-1.7.0-openjdk.x86-64

0
uday

Ausführen:

$ export Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64

und Betriebssystemumgebung einstellen:

vi /etc/environment

Dann folge diesen Schritten:

  1. Drücken Sie i 
  2. Einfügen

    Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64
    
  3. Drücken sie esc

  4. Drücken Sie: wq
0

Nachdem Sie den Java_HOME-Pfad wie in der Antwort angegeben aktualisiert haben, sollten Sie Folgendes tun:

$source ~/.bashrc

Dadurch wird der aktualisierte Pfad in $ Java_HOME aktualisiert, wenn Sie erneut prüfen. 

0
user3270763

Dieses Problem ist aufgetreten, als versucht wurde, den Android-Emulator mit Meteor 1.0 auf grundlegendem OS Luna (basierend auf Ubuntu 12.04 LTS-Quellen) auszuführen.

openjdk-6-jdk wurde installiert, ebenso wie die jre. Als ich am Ende keinen Erfolg erwartete, versuchte ich:

Sudo apt-get remove openjdk-6-*

dies führte zu vollständig erwarteten Fehlern, also folgte ich mit

Sudo apt-get install openjdk-6-jdk

und die Dinge funktionierten. Stelle dir das vor.

0
keito

In Ubuntu 14.04 habe ich zwei Teile zur Lösung des Problems gefunden:

  1. Entfernen Sie /jre aus der Umgebungsvariablen. Für mich: export Java_HOME=/usr/lib/jvm/Java-7-openjdk-AMD64/
  2. Installieren Sie das JDK sowie die JRE: Sudo apt-get install default-jdk
0
Mark Stosberg