2012-08-23 15 views
7

Ustalenie poprawnej ścieżki dla JAVA_HOME jest nieco skomplikowane w systemie Ubuntu, ponieważ używa alternatyw. Na moim komputerze jest to, w jaki sposób alternatywy tworzą co najmniej dwa poziomy dwukierunkowości, zanim dotrą do rzeczywistego java lub javac.Jaka jest poprawna ścieżka do JAVA_HOME w systemie Linux, który korzysta z alternatyw?

usr/bin/javac -> /etc/alternatives/ 

/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac 

Jeżeli ustawić JAVA_HOME do /usr/lib/jvm/jdk1.7, to jest możliwe, że mój system Java może stać się niezgodne z java wskazywanego przez JAVA_HOME, czy zaktualizować alternatywy użyć innego Java.

Moje pytanie brzmi, jaka jest prawidłowa wartość dla JAVA_HOME w systemie, który wykorzystuje alternatywy. Jestem skłonny sądzić, że JAVA_HOME powinien być ustawiony na /usr

ten sposób TOMCAT lub innego oprogramowania, które wykorzystuje je, dołączy „bin” do JAVA_HOME i znaleźć wszystkie pliki wykonywalne potrzebuje.

Czy jest to poprawna wartość dla JAVA_HOME w systemach wykorzystujących alternatywy. Czy większość oprogramowania używa tylko JAVA_HOME, aby zlokalizować pliki wykonywalne, czy też użyłoby tej wartości do zlokalizowania innych artefaktów (takich jak filar polityki bezpieczeństwa itp.) Dołączonych do pakietu JDK? Jeśli ta pierwsza jest prawdziwa, to czuję, że możemy użyć /usr dla JAVA_HOME, ale jeśli to drugie jest prawdziwe, to myślę, że jedynym sposobem prawidłowego użycia JAVA_HOME jest rezygnacja z funkcjonalności alternatyw.

+0

Właśnie patrzyłem na mój system CentOS 5.5: 1) Nie * mam * nie zdefiniowałem $ JAVA_HOME w dowolnym miejscu w moim środowisku, 2) /etc/tomcat5/tomcat5.conf ma tę linię : 'JAVA_HOME ="/usr/lib/jvm/java "', 3)/usr/lib/jvm/java jest dowiązaniem symbolicznym: 'java ->/etc/alternatives/java_sdk', 4)/etc/alternatives/java_sdk jest również dowiązaniem symbolicznym: 'java_sdk ->/usr/lib/jvm/java-1.4.2-gcj'. – paulsm4

+0

Tak, mam "default-java" na Ubuntu zamiast "java" wewnątrz/usr/lib/jvm Więc, domyślam się, że nie martw się o alternatywy, ponieważ istnieje jeszcze jedna warstwa pomiędzy alternatywami i Javą. – Parag

Odpowiedz

5

Dobre pytanie - używam "alternatyw" w Linuksie i wszystko "po prostu działa" - nigdy naprawdę nie musiałem o tym myśleć.

Wierzę, że to jest odpowiedź:

1) "alternatywy" ustawia dowiązania do niezależnie od "prawdziwych" Java jest obecnie skonfigurowana to

2) Wszystko czego potrzebujesz o o ustawiono $ JAVA_HOME na dowiązanie symboliczne

+0

Na jakiej to dystrybucji? Jestem na Debianie, który używa alternatyw, a ja nie mam/usr/lib/jvm/default-java –

+0

Ciekawa odpowiedź. Po raz pierwszy zacząłem ten komentarz od wyjaśnienia, dlaczego proponowane przez ciebie sugestie nie zadziałają. Ale kiedy pomyślałem o tym więcej, myślę, że rozumiem, co sugerujesz. Mówisz, że powinienem utworzyć katalog "default-java" i dowiązać symbolicznie do Javy, której chcę użyć. Następnie powinienem zaktualizować mój system alternatyw, aby wskazać wszystkie pliki binarne powiązane z Javą do tych w 'default-java/bin'. To rozwiąże problem, dodając jeszcze jedną warstwę między alternatywami i Java – Parag

+0

Dzięki.Byłem trochę zdezorientowany, ponieważ zboczyłem z moimi alternatywami, a pliki binarne java już nie przechodziły domyślnie-java – Parag

Powiązane problemy