Vraag Hoe JAVA_HOME voor Java in te stellen?


Ik heb een versie van Java geïnstalleerd. Hoe kunnen we de $JAVA_HOME omgevingsvariatie correct?


249
2017-08-13 22:31


oorsprong




antwoorden:


U kunt uw instellen JAVA_HOME in /etc/profile als Petronilla Escarabajo suggereert. Maar de voorkeurslocatie voor JAVA_HOME of een systeemvariabele is /etc/environment.

Open /etc/environment in elke tekst-editor zoals nano of gedit en voeg de volgende regel toe:

JAVA_HOME="/usr/lib/jvm/open-jdk"

(Java-pad kan anders zijn)

Gebruik source om de variabelen te laden, door deze opdracht uit te voeren:

source /etc/environment

Controleer vervolgens de variabele door deze opdracht uit te voeren:

echo $JAVA_HOME

Bijwerken

Meestal standaard de meeste linux-systemen bron / etc / environment. Als uw systeem dat niet doet, voegt u de volgende regel toe aan ~/.bashrc (Bedankt @ pje)

source /etc/environment

345
2017-08-14 02:17



Ik krijg: JDK Vereist: 'tools.jar' lijkt niet in IDEA classpath te zitten. Zorg ervoor dat JAVA_HOME wijst naar JDK in plaats van JRE. - anon58192932
@advocate - Je zou waarschijnlijk je eigen vraag moeten posten. Maar de aanwijzing zit in de boodschap; je moet wijzen naar een JDK en niet naar JRE. - David Edwards
Toen ik probeerde Android Studio uit te voeren (met IntelliJ IDEA als basis), had ik een foutmelding die erg leek op die van @ advocate: "'tools.jar' lijkt zich niet in het klassenpad van Android Studio te bevinden." Na veel gefrustreerd te hebben met JAVA_HOME zonder succes, besloot ik om een ​​kijkje te nemen op studio.sh, het shellscript dat Android Studio start. Als een wilde gok, heb ik JDK_HOME op dezelfde waarde ingesteld als verwacht voor JAVA_HOME, en voila! Het is geïnstalleerd zonder grote problemen. - Hilton Fernandes
Voor degenen die softwareontwikkeling doen, plaats je JAVA_HOME niet in / etc / environment tenzij je telkens opnieuw wilt opstarten als je van JDK-versie wisselt. - HDave
Zoals anderen hebben opgemerkt, blijft dit niet tussen terminale sessies. Wat ik deed om dit aan te pakken, is gewoon de regel toegevoegd source /etc/environment naar de top van mijn bash-configuratiebestand ~/.bashrc zodat het al mijn milieu-instellingen bij het opstarten laadt. Ik heb tot nu toe voor me gewerkt. - pje


In te stellen JAVA_HOME omgevingsvariabele, doe het volgende:

  1. Start Terminal door op te drukken Ctrl+alt+T op je toetsenbord.
  2. Voer de volgende opdracht in:
    $ gksudo gedit /etc/environment
  3. Afhankelijk van waar u uw Java hebt geïnstalleerd, moet u het volledige pad opgeven. Voor dit voorbeeld heb ik Oracle JDK 7 geïnstalleerd in de /usr/lib/jvm/java-7-oracle directory.
    Blader naar het einde van het bestand en voer het volgende in:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. Sla uw bestand op en sluit af gedit.
  5. Ten slotte laadt u het systeem-PATH opnieuw met de volgende opdracht:
    $ . /etc/environment

De bovenstaande methode bespaart u het gedoe bij het uitvoeren van de opdrachten telkens wanneer u zich aanmeldt op uw computer.


67
2017-08-13 23:01



Hoe werkt het. / etc / environment work? - Sudip Bhandari
Is de toevoeging van de export commando nodig in de /etc/environment? - pkaramol
@pkaramol Ik heb export JAVA_HOME op 16.04LTS moeten toevoegen om het bij het opstarten te laten laden. - adeen-s
@ adeen-s Je hebt toegevoegd export naar een regel in /etc/environment en het hielp? Dat bestand bevat variabele definities die zijn geparseerd als =-beloofde paren naam-waarde; de inhoud ervan wordt niet uitgevoerd als opdrachten. (Zien man pam_env.) Dus tenzij je bent afzonderlijk het behandelen van het bestand alsof het een script is (zoals door te geven /etc/environment naar bash's ./source gebouwd), ik zou niet verwachten dat dit zou werken. - Eliah Kagan


Als u het pad niet kent en alleen openJDK is geïnstalleerd, kunt u typen update-alternatives --config java en je zou het pad moeten vinden. Om de variabele in te stellen, kunt u schrijven JAVA_HOME=<PATH> gevolgd door export JAVA_HOME. Merk op dat er geen ruimte is bij het declareren van de variabele. Om te controleren of de variabele is opgeslagen, typt u gewoon echo $JAVA_HOME verifiëren.


30
2017-08-18 21:29



Dit lijkt alsof het statisch is. Als ik openjdk-7 verwijder en openjdk-9 installeer, zal de JAVA_HOME dan niet naar de verkeerde plaats verwijzen? Hoe kan het dynamisch worden gemaakt? - DavidJ
Door je het handmatig te veranderen. Nogmaals, JIJ bent de manier waarop het dynamisch wordt .... - HDave
Wat @HDave betekent, is dat u in bepaalde gevallen wilt dat JAVA_HOME verwijst naar een specifieke java-versie, dus het is mogelijk dat het updaten van JAVA_HOME niet is wat u wilt. - Maciej
ik vind dit antwoord leuk. Ik testte met echo en zag mijn pad. Ik ben echter in de war waarom ik het nog steeds begrijp JAVA_HOME omgevingsvariabele is niet ingesteld als ik mvn -version voer - Winnemucca
Ik schreef dit antwoord terug toen ik meer onwetend was. Het instellen van de variabele zoals beschreven, heeft alleen invloed op uw huidige terminalsessie en zal niet worden voortgezet. De juiste manier is om te rennen update-alternatives --install <link> <name> <target> <priority>  bijvoorbeeld: update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1 - Erro