2017-02-01 3 views
1

Bitte entschuldigen Sie, was scheint eine Frage zuvor beantwortet, aber wenn ich 10 verschiedene Beiträge lesen, finde ich 20 verschiedene Antworten.Set PATH und JAVA_HOME in Fedora 25

Ich habe gerade Fedora 25 installiert. Ich werde Java-Entwicklung lernen und muss meine Umgebung einrichten. Ich werde openjdk verwenden und Java-1.8.0-openjdk-devel installiert haben. Ich werde auch Maven benutzen.

Jetzt muss ich meine $PATH und $JAVA_HOME Variablen einstellen.

habe ich versucht, die Antwort hier (Fedora OpenJDK Set JAVA_HOME)

aber nach

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") 

meinem .bashrc hinzufügen und dann zu testen, ich bekommen, was mir scheint die falsche Antwort, weil ich nicht tun denke, es sollte

> echo $JAVA_HOME 
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b14.fc25.x86_64/jre/ 

so kann ich bitte fragen, was ich soll so eingestellt JAVA_HOME so ein/jre/am Ende sein, dass ich es nicht mit jedem openjdk UPDA zu aktualisieren te?

Danach denke ich PATH ist nur

export PATH=$JAVA_HOME/bin:$PATH 

dies scheint wie eine solche einfache Sache noch zu tun, scheint es mir, gibt es viel Verwirrung. thx

PS auch, ist .bashrc sogar der richtige Ort? weil ich hier sehe (https://askubuntu.com/questions/175514/how-to-set-java-home-for-java), dass/etc/environment wäre angemessener) thx

+0

Wenn Sie openjdk aus Fedora-Repositories installiert haben, sollten Sie diese Variablen nicht festlegen müssen, alles sollte sofort funktionieren. – WilQu

Antwort

0

Vielleicht könnte ein tr hinzufügen könnte funktionieren? export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::" | tr -d "/jre/")?

Auch wenn Sie es in Ihrer env var setzen, wird die var unabhängig von der sh Ihre Verwendung. Das ist eine großartige Möglichkeit, es zu speichern.

+0

Wenn ich den Ausdruck versuche, dann öffne eine Shell, die ausgedruckt wird, bevor eine Eingabeaufforderung angeboten wird. "tr: ​​wenn nicht set1, string2 muss nicht leer sein" –

+0

Ich vergesse total, dass ich den Befehl geändert habe, sollte es funktionieren jetzt :) –

0

ich folgendes setzen in ~/.profile, nicht ~/.bashrc und ich denke, es ist auf Fedora ist das gleiche (ich habe bei der Arbeit CentOS und tun das gleiche):

export JDK_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
export JAVA_HOME=$JDK_HOME/jre 

Ich muss entweder Abmelden oder neu starten nach dem Ändern von .profile.

Unter Ubuntu hat sich Java vor ein paar Jahren nur von 7 auf 8 geändert. Ich weiß nicht, warum Fedora eine genaue Versionsnummer in den Java-Ordner schreiben möchte. Sie könnten sich beschweren?

Wenn Java zu viel auf Fedora läuft, verwenden Sie einen Symlink. Der Symlink wirkt sich sofort aus, ohne sich abzumelden oder neu zu starten. Auf meinem Laptop verschlüssele ich meinen Home-Ordner. Für zusätzliche Geschwindigkeit lege ich die meisten Third-Party-Tools in einen/tools/-Ordner und gebe mir Zugang zu meinem Account (sudo chown -R myself.myself /tools/, wobei myself meine Benutzer-ID ist). Das ist, wo ich meinen Maven installiere. Tomcat verwendet einen anderen Verzeichnisnamen für jede Veröffentlichung, so dass ich ein Symlink wie so:

cd /tools 
ln -s apache-tomcat-8.0.38 latest-tomcat 

dann in ~ /.Profil (CATALINA bedeutet TOMCAT in diesem Beispiel - fragen Sie mich nicht warum):

# My un-encrypted Tools folder 
export TOOLS=/tools 
# Tomcat 
export CATALINA_HOME=$TOOLS/latest-tomcat 
# Maven 
export M2_HOME=$TOOLS/apache-maven-3.3.9/ 
export M2="$M2_HOME"bin 
export PATH=$PATH:$M2 

Wenn ich ein Upgrade Kater:

cd /tools 
rm -f latest-tomcat 
ln -s apache-tomcat-8.0.39 latest-tomcat 

Sie die gleiche Technik verwenden können, um eine /usr/lib/jvm/latest-java zu machen. In der Tat, wenn Sie Oracle Java installieren (nicht unbedingt empfohlen), tut es genau das, aus diesem Grund.

Ja, was Sie über den Pfad gesagt haben, sieht für mich korrekt aus. Ich lege kein Java in meinen Pfad, bevorzuge die Verwendung von $JDK_HOME, $JAVA_HOME, oder einfach Maven aufrufen. Ein Teil davon ist für die Sicherheit. Ein Teil davon ist, dass ich immer weiß, welche Version von Java ich verwende.

P.S. Für mich sieht die ln -s Syntax immer so aus, als wären die Argumente umgekehrt. Der tatsächliche Ordnername wird zuerst angezeigt, gefolgt von Ihrem gewünschten Alias ​​/ Link.

0

Leider habe ich kein Fedora für mich, daher kann ich nicht untersuchen, wie Java normalerweise installiert wird, aber warum versuchen Sie nicht,/usr/bin/java in Ihrem Ausdruck durch etwas wie/usr zu ersetzen/bin/javac? Der tatsächliche Pfad zu javac Link können Sie mit

which javac 

bekommen Und lesen Sie den realen Pfad mit readlink. Offensichtlich funktioniert es, wenn JDK installiert ist (nicht JRE). Zum Aktualisieren erstellen die meisten Linux-Distributionen einen symbolischen Link wie/usr/lib/jvm, der auf das richtige Verzeichnis gesetzt wird und im Falle einer neuen Version aktualisiert wird. Für mich bessere Lösung, um diesen Pfad in Ihrem Bashrc zu setzen.

Und ja, bashrc ist normalerweise genug, wenn Sie JAVA_HOME nicht benötigen, um für andere Benutzer des Betriebssystems sichtbar zu sein.

-1

Fügen Sie diese auf Ihrem .bashrc oder .profile, etwas zu haben, das eine openjdk Update überlebt:

export JAVA_HOME="/etc/alternatives/java_sdk" 

Getestet auf Fedora 26

0

Set JAVA_HOME:

echo "JAVA_HOME=/etc/alternatives/jre" >> ~/.profile 
source ~/.profile 
echo $JAVA_HOME 
1

OpenJDK gebündelt mit Fedora nicht für mich arbeiten. Zum Beispiel kann IntelliJ diese Version nicht verwenden. Meiner Meinung nach ist es am besten, Oracle JDK RPM von Oracle zu installieren.

JDK Lage:

/usr/java/latest/ 

JRE unter Befehl verwenden, um manipilate:

sudo alternatives --config java 
1

Ich schlage vor, einen Alias-Befehl erstellen, bashrc Modifizieren und stellen Sie JAVA_HOME in bash_profile, dies:

  1. Create-Befehl in der bashrc:

    alias set-java = 'sudo Alternativen --config java; export JAVA_HOME = $ (readlink -f/usr/bin/java | sed "s: bin/java ::"); Quelle ~ /.bash_profile‘

speichern und ausführen: source ~/.bashrc

  1. erstellen generic JAVA_HOME in bash_profile:

export JAVA_HOME = $ (readlink - f/usr/bin/java | sed "s: bin/java ::") PATH = $ JAVA_HOME/bin: $ PATH

  1. Führen Sie den Befehl alias
Verwandte Themen