Ubuntu wydaje się faworyzować OpenJDK / JRE w stosunku do Sun JDK / JRE. Nawet po tym, jak zainstalowałem Sun JRE, JDK i wtyczkę i spędziłem trochę czasu na wydobywaniu pakietów związanych z OpenJDK, apt-get zainstalował je z powrotem z niektórymi pakietami jako zależność. Czy to zachowanie można poprawić na korzyść pakietów Sun Java? Chciałbym mieć zainstalowany jeden i jedyny stos Java (tak, to trochę OCD , ale lubię mieć czyste systemy) i chcę, aby był to Sun Java.
Aktualizacja: jak zauważa Marcos Roriz, wydaje się, że problemem jest default-jre (od którego zależą pakiety zależne od Javy) wskazujący na OpenJDK, więc wydaje się, że chodzi o to, jak zhakować default-jre / default-jdk, aby wskazać do Sun Java.
Odpowiedzi:
Instalowanie Sun Java na starszych wersjach Ubuntu (9.10 i niższych)
Miałem ten sam problem raz około trzy lata temu z Ubuntu 8.04. Wystąpił dziwny problem podczas korzystania z OpenJre i problem został rozwiązany przy użyciu wersji Sun Jre. Oto kroki w terminalu, które dotyczą wersji poniżej 10.04, ponieważ od 10.04 Sun Java została usunięta i zastąpiona przez openjre:
(Wszystko związane z Javą Sun. Tylko dla pewności)
Następnie, jeśli usuniesz openjdk, będziesz miał tylko Sun Java. Jeśli go nie usunąłeś, masz oba z nich. Aby przejść z jednego do drugiego, wykonaj następujące czynności:
sudo update-java-alternatives -l
- Spowoduje to wyświetlenie listy silników Java, których możesz używać.Nazwa alternatywy java to ta po lewej, więc na przykład openjdk wyglądałby tak:
I ustawiłbyś system na openjdk w następujący sposób:
Jeśli chcesz korzystać z Sun, zrobiłbyś to (po instalacji pakietów Sun):
Jeśli chcesz korzystać z wersji java 7, po prostu zmień numer 6 wymieniony powyżej na 7. Na przykład, jeśli chcę zainstalować wersję 7 openjre, zrobiłbym:
Instalowanie Sun Java na nowszych wersjach Ubuntu (10.04 i wyżej)
Otwórz terminal i wpisz następujące polecenie:
To powinno zainstalować wersję Sun Java w twoim systemie. Aby to zmienić, po prostu wykonaj następujące czynności, jeśli masz inne alternatywy Java:
Jeśli chcesz, aby instalacja była automatyczna, wpisz następujące polecenie:
następnie wykonaj następujące czynności, aby ustawić domyślne zmienne środowiskowe:
Pamiętaj, że PPA obejmuje wersje 6, 7 i 8. Możesz więc zainstalować dowolną z nich, po prostu zmieniając numer w wierszu instalacji, na przykład:
Zainstalowałbym Javę 8. Po zainstalowaniu wersji Java, której chcesz używać i ustawieniu domyślnej wersji za pomocą
update-java-alternatives
polecenia, możesz sprawdzić, której wersji używasz, wpisując następujące polecenie:Pokaże Ci domyślną wersję, której używasz w tym momencie.
Chciałbym również wspomnieć, że OpenJRE / JDK przeszedł długą drogę od 2 lub 3 lat temu, kiedy miał wiele problemów, które zostały rozwiązane przez przejście na Sun Java.
źródło
Myślę, że problem polega na tym, że niektóre pakiety Java polegają na default-jre, co wskazuje na openjdk-jre. Nie sądzę, że istnieje prosty sposób na trwałe odinstalowanie openjdk. Chodzi o to, że prawdopodobnie po raz kolejny wpadniesz na openjdk podczas instalowania pakietu / programu Java.
Ale jeśli chcesz mieć jedno i drugie, czy łatwo jest ustawić programy wykonawcze Java (java, javah, javap itd.) Na implementację sun. Zrób to:
lub jeśli jesteś programistą Java (zainstaluj sdk i srcs):
I ustaw go jako programy domyślne za pomocą:
źródło
default-jre
tego wieczoru spróbuję odbudować pakiet, aby wskazał Sun-Java. Teraz jestem @ work..jdk1.6.0_23.jinfo
Plik powinien być wykaz dostarczonych programów i ich ścieżkach. Jest opisowy nagłówek, po którym następuje pusty wiersz. Następnie lista programów w formacie trzech pól: typ wpisu (jre / jkd / plugin); Nazwa programu; i ścieżka. Powinieneś mieć jakieś pliki jinfo, których możesz użyć, aby zobaczyć, jak powinna wyglądać zawartość. Jest to prawdopodobnie wykorzystywane przez mechanizm alternatywny w celu ustalenia, które łącza należy utworzyć. Szefem mojego pakietu Sun jest.Jeśli chcesz zastąpić domyślne polecenia Java bez użycia mechanizmu alternatywnego, umieść swoją ścieżkę Java przed / usr / bin na swojej ścieżce.
Podczas ręcznej instalacji instaluję Javę w
/opt
. dla twojej instalacji zainstalowałbym w/opt/jdk1.6.0_23
. Następnie umieszczam ścieżkę$JAVA_HOME/bin
na początku mojejPATH
zmiennej.EDYCJA: To jest cały plik Sun. Uwaga
.java-6-sun.jinfo
to symboliczny link do.java-6-sun-1.6.0.22.jinfo
.źródło
Usuń openjdk i icedtea:
dodaj następujące elementy do /etc/apt/sources.list
zainstaluj Sun / Oracle JRE lub JDK:
źródło
Sprawdziłeś to?
Jeśli nie potrzebujesz: odinstaluj openjdk i gcj w synaptic lub w apt-get.
Wówczas zakazałbym Javy alternatyw i robiłem głównie, jak sugerował BillThor, dlaczego dałem mu głos.
powinien wskazywać, gdzie zainstalowałeś Javę i gdzie znajduje się ona w ŚCIEŻCE.
źródło
which
polecenia i nic nie drukuje. Okazało się, że zapomniałem symbolu $ przed zmienną JAVA_HOME w PATH, zrestartuję teraz i zobaczę, jak to działa.which
polecenie wciąż nic nie pokazuje. Zarówno zmienne JAVA_HOME, jak i PATH są poprawne: echo $ JAVA_HOME /usr/lib/jvm/jdk1.6.0_23 echo $ PATH $ JAVA_HOME / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games Gdzie może być problem? Edycja: BOŻA CHOLERA, dlaczego w komentarzach nie ma podziałów?echo $PATH $JAVA_HOME/bin:/usr/local/sbin...
ale w rezultacie $ JAVA_HOME musi zostać oszacowany - coś jest nie tak lub raportowanie jest błędne. c) Linebreaks: Nie ma ich, więc ciągle wciskamy ENTER zbyt wcześnie, a potem zegar tyka, ponieważ edycja jest dozwolona tylko przez kilka minut - ciągle wchodzę w tę pułapkę. Nienawidzę tego! :)echo $JAVA_HOME
...echo $PATH
wypisuje,$JAVA_HOME...
czy wypisuje wartość JAVA_HOME, tj .:/usr/lib/jvm/jdk1.6.0_23
?java -version
w powłoce (wyświetli się tylko Sun Java)sudo update-java-alternatives -l
i działa tylko, jeśli masz zainstalowane dwa jdk i chcesz ustawić sun-java jako środowisko domyślne
źródło
Używając Ubuntu 10.10, wydaje się, że musisz najpierw oznaczyć do usunięcia libaccess-bridge-java w Synaptic, a następnie zaznaczyć openjdk-6-jre-headless.
Skończyło się na liście do usunięcia:
To działało, ale pozostawiło katalog
/etc/java-6-openjdk
zawierający różne pliki i podkatalogi, które odizolowałem w nowym katalogu. Nie było żadnych niezwykłych efektów, więc przypuszczalnie jest to tylko resztka.Zostało mi to z Javą, którą pobrałem bezpośrednio ze strony Java. Jednak pomimo ustawienia go jako domyślnego i utworzenia łącza do katalogu wtyczek Firefox, to już nie działało. Instalując sun-java6-jre i powiązane z nim pakiety gsfonts-x11, odbcinst, odbcinst1debian2, sun-java6-bin i unixodbc, za pośrednictwem Synaptic, zobaczyłem, że wtyczka Java znów zaczyna działać. Usunięcie łącza w katalogu wtyczek i zastąpienie go rzeczywistym plikiem libnpjp2.so nie działało. Użycie łącza do plików libjavaplugin_oji.so w katalogach ns7 lub ns7-gcc29 w Javie zainstalowanych przez Synaptic również nie działało. Sugeruje mi to, że aby uzyskać najnowszą wtyczkę Java w Firefoksie, można postępować zgodnie z instrukcjami na stronie internetowej Java, i że do uruchomienia pobranej Javy potrzebna jest zintegrowana Java Java dowolnej odmiany. który następnie polega na działaniu na otaczających go plikach po aktywacji wtyczki. Chociaż pełne zrozumienie kodu składającego się z Javy i Linuksa byłoby konieczne, aby naprawdę rozwiązać jego tajemnice, być może te eksperymenty są pomocne w znalezieniu powodów, dla których w tym przypadku mogą być potrzebne dwie Javy. Można przynajmniej usunąć całą Javę, jeśli ktoś uzna to za przydatne.
źródło
To, co robię na nowych komputerach z systemem Ubuntu 10.10, to
To jest dla mnie w porządku, nie ma już zależności openJDK
źródło
Odpowiedzi na to pytanie nie działały dla mnie. Oznacza to, że następujące nie powiodło się:
Z błędem:
Zamiast tego wypróbuj te instrukcje :
icedtea-6-jre-cacao
), jeśli jest zainstalowana.OpenJDK (IcedTea) jest teraz zainstalowany, co powinno pozwolić (jeśli wystąpił ten błąd) na kontynuowanie instalacji JDK Oracle bez błędu.
Zobacz też:
źródło
Po pierwsze: usuń wtyczkę openjdk i icedtea.
Po drugie: skopiuj plik .bin jdk do / opt lub / usr / java i rozpakuj go.
Po trzecie: umieść łącze pliku java do / usr / bin /
zaktualizuj alternatywy za pomocą update-alternatives
Utwórz symboliczne łącze do wtyczki Java w katalogu wtyczek Firefox.
Utwórz dowiązanie symboliczne do pliku libnpjp2.so wtyczki Java w katalogu wtyczek Firefox:
Mam nadzieję że to pomoże.
źródło