Jestem nowy w systemie Linux i wydaje się, że jest za dużo folderów Java.
java -version daje mi:
- wersja java „1.7.0_55”
- Środowisko wykonawcze OpenJDK (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
- 64-bitowa maszyna wirtualna serwera OpenJDK (kompilacja 24.51-b03, tryb mieszany)
Kiedy próbuję zbudować projekt Maven, pojawia się błąd:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
Czy mógłbyś mi powiedzieć, które pliki muszę zmodyfikować dla użytkownika root, a nie dla użytkownika root i gdzie dokładnie znajduje się java?
java
linux
java-home
path-variables
Bosco
źródło
źródło
JAVA_HOME
, nie zaszkodzi też ich skonfigurowaniu.source /etc/profile
aby zmiany zaczęły obowiązywać natychmiast!/etc/profile.d/jdk.sh
w moim systemie krążyła nieświeża .Wszystkim użytkownikom zalecałbym umieszczenie następującego wiersza
/etc/profile
Będzie to aktualizować się dynamicznie i dobrze współpracuje z systemem alternatyw . Pamiętaj jednak, że aktualizacja odbędzie się tylko w nowej powłoce logowania.
źródło
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
zamiast tego - zauważ, że używam po prostujava
, a niejavac
readlink
rozwiązaniem kompatybilnym z aktualizacją / aktualizacją, nawet jeśli jest to wątek sprzed 5 lat. Zalecam tylko nie edytować / etc / profile, ale umieścić eksport w niestandardowym pliku, np./etc/profile.d/java_environment.sh
Może trzebachmod +x java_environment.sh
i ponownie uruchomić.dirname
rozwiązanie. Jeśli jesteś podobny do mnie i chcesz zrozumieć, co się tutaj dzieje, jest to proste zastąpienie pasującego tekstu z danych wejściowych pustym ciągiem. Znakiem „domyślnym” dla zastąpień jest znak/
, ale jeśli jesteś konsekwentny, możesz go zastąpić/
dowolnym. W tym przypadku są to dwukropki, których używamy/
do separatorów ścieżek.Możesz użyć / etc / profile lub lepiej pliku takiego jak /etc/profile.d/jdk_home.sh
Musisz pamiętać, że ten plik jest ładowany tylko z nowymi powłokami logowania. Więc po bash -l lub nowej sesji gnome i że nie zmienia się z nowymi wersjami Javy.
źródło
/etc/profile.d/*.sh
więc plik musi się nazywaćjdk_home.sh
tak robi pozyskiwane/etc/profile.d/jdk_home.sh
jest o wiele bardziej przejrzystą odpowiedzią, przynajmniej w przypadku Ubuntu , która/etc/profile
jest już pełna logiki. Nie wydawało się rozsądne, aby dodać do tego więcej ...Żadna z pozostałych odpowiedzi nie „przyklejała się” do mnie w RHEL 7, nawet ustawianie
JAVA_HOME
iPATH
bezpośrednio w/etc/profile
lub~/.bash_profile
nie działały. Za każdym razem, gdy próbowałem sprawdzić, czyJAVA_HOME
zostało ustawione, wyświetlało się puste:Musiałem założyć skrypt w
/etc/profile.d/jdk_home.sh
:Początkowo zaniedbałem pierwszą linię (the
#!/bin/sh
) i bez niej nie zadziała.Teraz działa:
źródło
Bardzo łatwo jest ustawić ścieżkę w Linuksie. Wykonaj następujące czynności:
Step-1 Otwórz terminal i wpisz
sudo gedit .bashrc
Step-2 Poprosi Cię o hasło. Po wpisaniu hasła otworzy plik bash. Następnie przejdź do końca i wpisz poniżej
krok 3
krok-4 Następnie zapisz plik i wyjdź z pliku
Powyższe dotyczy jednego użytkownika. W przypadku wszystkich użytkowników musisz wykonać poniższe kroki
Krok 1
gedit /etc/profile
Krok 2
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
Krok 3
export PATH=$PATH:$JAVA_HOME/bin
Mam nadzieję że to pomoże. Dzięki!
źródło
Robienie tego, co robi Oracle (jako były pracownik Sun nie mogę się do tego przyzwyczaić)
ln -s latestJavaRelease / usr / java / default
Gdzie latestJavaRelease to wersja, której chcesz użyć
następnie wyeksportuj JAVA_HOME = / usr / java / default
źródło
Odpowiedź podana w poprzednich postach jest ważna. Ale żadna odpowiedź nie jest kompletna w odniesieniu do:
Jak wspomniano powyżej, utwórz plik /etc/profile.d/custom.sh dla niestandardowych zmian.
Teraz, aby zawsze być na bieżąco z instalowanymi nowszymi wersjami Javy, nigdy nie podawaj ścieżki bezwzględnej, zamiast tego użyj:
źródło
Skopiuj zainstalowaną ścieżkę do pliku bin
otwórz terminal i edytuj plik środowiska wpisując następujące polecenie,
W tym pliku dodaj następujący wiersz (zastępując
YOUR_PATH
właśnie skopiowaną ścieżką):To powinno wystarczyć do ustawienia zmiennej środowiskowej. Teraz przeładuj ten plik:
teraz przetestuj to, wykonując:
źródło
/usr/lib/jvm/default-java/
W Linuksie dodaję tę linię do mojego ~ / .profile:
źródło
Krok 1 - sprawdź aktualną wersję Java przez „echo $ JAVA_HOME”
Krok 2 - vim / etc / profile
Krok 3 - Na końcu pliku znajdziesz eksport JAVA_HOME, musimy tutaj podać nową ścieżkę, upewnij się, że nie jest względna.
Krok 4 - Zapisz i wyjdź: wq
Krok 5 - „source / etc / profile /”, spowoduje to wykonanie zmiany
Krok 6 - Ponownie wykonaj echo $ JAVA_HOME - zmiana zostanie odzwierciedlona.
źródło
1 ... Używając skrótu
Ctlr
+Alt
+,T
aby otworzyć terminal2 ... Wykonaj poniższe polecenie:
3 ... (zalecane) Uruchom ponownie maszynę wirtualną / komputer. Możesz użyć,
source /etc/source
jeśli nie chcesz ponownie uruchamiać komputera4 ... Używając skrótu
Ctlr
+Alt
+,T
aby otworzyć terminal5 ... Zweryfikowana rata JAVA_HOME z
Jednowierszowa kopia flob , uznanie dla nich
źródło
źródło
Prawdopodobnie dobrym pomysłem jest pozyskanie dowolnego edytowanego profilu, aby zapisać, używając nowego loginu.
albo: źródło / etc / lub. /itp/
Gdzie jest dowolny edytowany profil.
źródło
Podczas gdy jesteśmy już gotowi do ustawienia JAVA_HOME, pozwól mi podzielić się niektórymi zaletami ustawienia JAVA_HOME lub dowolnej innej zmiennej środowiskowej:
1) Aktualizacja JDK jest łatwa bez wpływu na uruchamianie aplikacji i plik konfiguracyjny, który wskazuje na JAVA_HOME. wystarczy pobrać nową wersję i upewnić się, że JAVA_HOME wskazuje na nową wersję Java. Jest to najlepsza zaleta korzystania ze zmiennej środowiskowej lub linków.
2) Zmienna JAVA_HOME jest krótka i zwięzła zamiast pełnej ścieżki do katalogu instalacyjnego JDK.
3) Zmienna JAVA_HOME jest niezależna od platformy, tzn. Jeśli twój skrypt startowy używa JAVA_HOME to może działać na Windows i UNIX bez żadnych modyfikacji, wystarczy ustawić JAVA_HOME na odpowiednim systemie operacyjnym.
Czytaj więcej: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH
źródło
To bardzo prosty skrypt rozwiązujący problem
A do testów:
źródło
Publikuję jako odpowiedź, ponieważ nie mam przywileju komentowania.
Zwróć uwagę : postępuj zgodnie z zaakceptowaną odpowiedzią zamieszczoną przez „That Dave Guy”.
Po ustawieniu zmiennych upewnij się, że ustawiłeś odpowiednie uprawnienia do katalogu java, w którym jest zainstalowany.
źródło
Wszystkie kroki operacyjne (znalezienie java, katalogu nadrzędnego, edycja pliku, ...) jedno rozwiązanie
Wynik:
Wyjaśnienie:
1) Podzielmy całą komendę na części
2) Znajdź ścieżkę java z polecenia java
3) Uzyskaj ścieżkę względną ze ścieżki symbolicznej
4) Uzyskaj ścieżkę rodzicielską
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java
5) Uzyskaj ścieżkę rodzicielską
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/
źródło
Użyj SDKMAN sdkman.io aby przełączyć btw. twój sdk's.
Ustawia JAVA_HOME dla Ciebie.
źródło
otwórz kafka-run-class.sh z sudo do pisania
możesz znaleźć kafka-run-class.sh w swoim folderze kafka : kafka / bin / kafka-run-class.sh
sprawdź te linie
Zmodyfikuj zmienną JAVA w innej części, aby wskazywała na plik wykonywalny Java w twoim java / bin. jak JAVA = "$ JAVA_HOME / java"
źródło
W / etc / profile, jeśli to otworzysz, dowiesz się, że NIE JEST zalecane zapisywanie w tym pliku. Zamiast tego utwórz skrypt swoich poleceń (załóżmy, że test.sh) przejdź do folderu /etc/profile.d i umieść tam test.sh. Za każdym razem, gdy uruchomisz ponownie instancję, zostanie ona automatycznie wywołana przez / etc / profile.
źródło
Używam linii:
do mojego ~ / .profile, tak aby podczas logowania używał podstawy domyślnego katalogu java. To jest dla basha.
źródło