Ik ben nieuw in het Linux-systeem en er lijken te veel Java-mappen te zijn.
java -version geeft me:
- java-versie “1.7.0_55”
- OpenJDK runtime-omgeving (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
- OpenJDK 64-bits server-VM (build 24.51-b03, gemengde modus)
Als ik een Maven-project probeer te bouwen, krijg ik de foutmelding:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
Kunt u mij alstublieft vertellen welke bestanden ik moet wijzigen voor zowel root- als niet-rootgebruikers en waar Java precies staat?
Antwoord 1, autoriteit 100%
find /usr/lib/jvm/java-1.x.x-openjdk
-
vim /etc/profile
Plaats sudo als u bent aangemeld als niet-bevoegde gebruiker, dwz.
sudo vim
- Druk op ‘i’ om in de invoegmodus te komen
-
toevoegen:
export JAVA_HOME="path that you found" export PATH=$JAVA_HOME/bin:$PATH
- log uit en log opnieuw in, start opnieuw op of gebruik
source /etc/profile
om wijzigingen onmiddellijk in uw huidige shell toe te passen
Antwoord 2, autoriteit 33%
Voor alle gebruikers raad ik aan om een bestand te maken in /etc/profile.d/java_home.sh
de volgende regels
# Set JDK installation directory according to selected Java compiler
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
Dit wordt dynamisch bijgewerkt en werkt goed met het alternatieven-systeem. Houd er echter rekening mee dat de update alleen in een nieuwe login-shell zal plaatsvinden.
3, Autoriteit 9%
U kunt / etc / profiel gebruiken of beter een bestand zoals /etc/profile.d/jdk_home.sh
export JAVA_HOME=/usr/java/jdk1.7.0_05/
U moet onthouden dat dit bestand alleen is geladen met nieuwe inlogschelpjes .. dus na Bash -L of een nieuwe GNOME-sessie en dat het niet verandert met nieuwe Java-versies.
4, Autoriteit 8%
Niets van de andere antwoorden was “vasthouden” voor mij in Rhel 7, zelfs instellen JAVA_HOME
en PATH
rechtstreeks in /etc/profile
of ~/.bash_profile
zou niet werken. Elke keer dat ik probeerde te controleren of JAVA_HOME
was ingesteld, zou het blanco komen:
$ echo $JAVA_HOME
(<-- no output)
Wat ik moest doen, is een script opgezet in /etc/profile.d/jdk_home.sh
:
#!/bin/sh
export JAVA_HOME=/opt/ibm/java-x86_64-60/
export PATH=$JAVA_HOME/bin:$PATH
Ik verwaarloosde aanvankelijk de eerste regel (de #!/bin/sh
), en het werkt niet zonder.
Nu werkt het:
$ echo $JAVA_HOME
/opt/ibm/java-x86_64-60/
5, Autoriteit 4%
Het is heel gemakkelijk om een pad in Linux in te stellen. Doe als volgt:
Stap-1 Open Terminal en Type sudo gedit .bashrc
Stap-2 Het zal u uw wachtwoord vragen. Na het typen van het wachtwoord, wordt het BASH-bestand geopend. Ga dan naar het einde en typ onder
Stap-3
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
export PATH=$PATH:$JAVA_HOME/bin
stap-4Sla vervolgens het bestand op en verlaat het bestand
Bovenstaande is voor een enkele gebruiker. Voor alle gebruikers moet u onderstaande stappen volgen
Stap-1gedit /etc/profile
Stap-2export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
Stap-3export PATH=$PATH:$JAVA_HOME/bin
Ik hoop dat dit helpt. Bedankt!
Antwoord 6, autoriteit 2%
Kopieer het bin-bestandspad dat je hebt geïnstalleerd
YOUR PATH
open terminal en bewerk het omgevingsbestand door de volgende opdracht te typen,
sudo nano /etc/environment
Voeg in dit bestand de volgende regel toe (vervang YOUR_PATH
door het zojuist gekopieerde pad):
JAVA_HOME="YOUR_PATH"
Dat zou voldoende moeten zijn om de omgevingsvariabele in te stellen. Laad nu dit bestand opnieuw:
source /etc/environment
test het nu door het volgende uit te voeren:
echo $JAVA_HOME
Antwoord 7, autoriteit 2%
Doen wat Oracle doet (als voormalig Sun-medewerker kan ik daar niet aan wennen)
ln -s nieuwsteJavaRelease /usr/java/default
Waar nieuwsteJavaRelease de versie is die u wilt gebruiken
exporteer vervolgens JAVA_HOME=/usr/java/default
Antwoord 8, autoriteit 2%
Het antwoord op eerdere berichten is geldig. Maar geen enkel antwoord is compleet met betrekking tot:
- Het wordt niet aanbevolen om het /etc/profile te wijzigen om de reden (zoals vermeld in /etc/profile):
- Het is GEEN goed idee om dit bestand te wijzigen, tenzij je weet wat je doet. Het is veel beter om een custom.sh shellscript te maken in
/etc/profile.d/ om aangepaste wijzigingen in uw omgeving aan te brengen, zoals dit:
zal de noodzaak voor samenvoegen in toekomstige updates voorkomen.*
-
Dus zoals hierboven vermeld, maak /etc/profile.d/custom.sh bestand voor aangepaste wijzigingen.
-
Om altijd op de hoogte te blijven van nieuwere versies van Java die worden geïnstalleerd, plaats nooit het absolute pad, maar gebruik:
#if jdk maken als java home
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed “s:/bin/javac::”)
OF
#if jre as java home maken
export JAVA_HOME=$(readlink -f /usr/bin/java | sed “s:/bin/java::”)
- En vergeet niet om # te hebben! /bin/bashin het custom.sh-bestand
Antwoord 9
Dit is een heel eenvoudig script om het probleem op te lossen
export JAVA_HOME_BIN=`which java`
export JAVA_HOME_DIR=`dirname $JAVA_HOME_BIN`
export JAVA_HOME=`dirname $JAVA_HOME_DIR`
En om te testen:
echo $JAVA_HOME
Antwoord 10
1…Gebruik de sneltoets Ctlr
+ Alt
+ T
om terminal te openen
2…Voer het onderstaande commando uit:
echo export JAVA_HOME='$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")' | sudo tee /etc/profile.d/jdk_home.sh > /dev/null
3 … (aanbevolen) Start uw VM / computer opnieuw op. U kunt source /etc/source
gebruiken als u de computer niet wilt herstarten
4 … met behulp van de korte snede Ctlr
+ Alt
+ T
TOT DE TERMINAL
5 … Geverifieerde Java_Home-aflevering met
echo $JAVA_HOME
Kopie van één voering van flob , krediet voor hen
11
Posting als antwoord, zoals ik niet het voorrecht heb om commentaar te geven.
punt om op te merken : Volg het geaccepteerde antwoord gepost door “die Dave Guy”.
Nadat u de variabelen instelt, moet u ervoor zorgen dat u de juiste machtigingen instelt naar de Java-directory waar deze is geïnstalleerd.
chmod -R 755 /usr/java
12
Stap 1 – Controleer de huidige Java-versie door “ECHO $ JAVA_HOME”
Stap 2 – VIM / ETC / PROFIEL
Stap 3 – Aan het einde van het bestand vindt u
Export Java_Home, we moeten het nieuwe pad hier bieden, zorg ervoor dat het niet relatief is.
Stap 4 – Opslaan en afsluiten: WQ
Stap 5 – “SOURCE / ETC / PROFIEL /”, dit zou de wijziging
uitvoeren
Stap 6 – Nogmaals, een echo $ Java_Home – verandering zou worden weerspiegeld.
13
Alle operationele stappen (vinden van Java, Parent Dir, bewerkingsbestand, …) Eén oplossing
zFileProfile="/etc/profile"
zJavaHomePath=$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)
echo $zJavaHomePath
echo "export JAVA_HOME=\"${zJavaHomePath}\"" >> $zFileProfile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> $zFileProfile
Resultaat:
# tail -2 $zFileProfile
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"
export PATH=$PATH:$JAVA_HOME/bin
Uitleg:
1) Laten we het volledige commando in stukjes breken
$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)
2) Zoek Java-pad van Java-opdracht
# $(which java)
"/usr/bin/java"
3) Krijg relatief pad van symbolisch pad
# readlink -ze /usr/bin/java
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java"
4) Bovenliggend pad van /usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java
ophalen
# readlink -ze /usr/bin/java | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin"
5) Bovenliggend pad van /usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/
ophalen
# readlink -ze /usr/bin/java | xargs -0 dirname | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"
Antwoord 14
Eerst moet u weten welke Java op uw pc is geïnstalleerd en welke u moet gebruiken.
Voor die open terminal met root-toestemming.
sudo su
ls /usr/lib/jvm/
Nu worden de beschikbare Java-versies weergegeven.
Selecteer de vermelde versie.
Kopieer het pad tot daar.
Open nu bashrc
nano ~/.bashrc
voeg de volgende opdrachten toe aan het einde
export JAVA_HOME="path that you copied"
export PATH=$JAVA_HOME/bin:$PATH
Sla daarna het bestand op en sluit af door op Ctrl+S te drukken gevolgd door Ctrl+X
Voer nu het onderstaande commando uit:
source ~/.bashrc
Antwoord 15
Waarschijnlijk een goed idee om het profiel dat u bewerkt, op te slaan door een nieuwe login te gebruiken.
ofwel:
bron /etc/
of
. /etc/
Waar is het profiel dat je hebt bewerkt.
Antwoord 16
Onder Linux voeg ik deze regel toe aan mijn ~/.profile:
export JAVA_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
Antwoord 17
Terwijl we bezig zijn met het instellen van JAVA_HOME, wil ik u enkele voordelen geven van het instellen van JAVA_HOME of een andere omgevingsvariabele:
1) Het is gemakkelijk om JDK te upgraden zonder dat dit gevolgen heeft voor het opstarten van uw toepassing en het configuratiebestand dat verwijst naar JAVA_HOME. u hoeft alleen maar een nieuwe versie te downloaden en ervoor te zorgen dat uw JAVA_HOME verwijst naar een nieuwe versie van Java. Dit is het beste voordeel van het gebruik van omgevingsvariabelen of links.
2) JAVA_HOME-variabele is kort en bondig in plaats van het volledige pad naar de JDK-installatiemap.
3) JAVA_HOME-variabele is platformonafhankelijkheid, d.w.z. als uw opstartscript JAVA_HOME gebruikt, kan het zonder enige wijziging op Windows en UNIX worden uitgevoerd, u hoeft alleen JAVA_HOME op het betreffende besturingssysteem in te stellen.
Lees meer: http: / /Javarevisited.blogspot.com/2012/02/how-to-Set-javahome-environment-in.html#ixzz4bwmayijh
18
In / etc / profiel, als u opent, kunt u weten dat het geen aanbevolen is om op dat bestand te schrijven. In plaats van dat een script van uw opdrachten (veronderstel Test.SH) naar /etc/profile.d-map en plaats Test.SH daar. Telkens wanneer u opnieuw opstart, wordt deze automatisch door / etc / profiel gebeld.
19
Gebruik sdkman sdkman.io om BTW te schakelen. je SDK’s.
Het stelt de Java_Home voor u in.
20
Het gebruik van VIM kan een beetje moeilijk zijn voor een nieuwe gebruiker. We kunnen in plaats daarvan Gedit Text Editor gebruiken.
-
Zoek /usr/LIB/JVM/JAVA-1.X.X-OPENJDK
-
Voer “GEDIT / ETC / PROFIEL” in of gebruik “SUDO GEDIT / ETC / PROFIEL” indien ingelogd als niet-bevoorrecht
-
Voeg het volgende toe aan het einde van de regel:
Export java_home = “Pad dat je hebt gevonden”
Exporteerpad = $ Java_Home / Bin: $ pad
-
Voer “Bron / etc / Profile” in uw huidige schaal in om de wijzigingen toe te passen
21
Ik gebruik de regel:
export JAVA_HOME=$(readlink -f $(dirname $(readlink -f $(which java) ))/../)
naar mijn ~/.profile zodat het de basis van de standaard Java-directory gebruikt tijdens het inloggen. Dit is voor bash.