it-swarm-eu.dev

Jak správně odstranit OpenJDK / OpenJRE a nastavit SunJDK / SunJRE jako výchozí

Zdá se, že Ubuntu velmi preferuje OpenJDK/JRE před Sun JDK/JRE. Dokonce i poté, co jsem nainstaloval Sun JRE, JDK a plugin a strávil nějaký čas vybíráním balíčků souvisejících s OpenJDK, apt-get je nainstaloval zpět s některými balíčky jako závislost. Lze toto chování napravit ve prospěch balíků Sun Java?) Chtěl bych mít jeden a pouze Java stack nainstalován (ano, je to trochu - OCD , ale ráda mám čisté systémy) a chci, aby to byla Sun Java.

Aktualizace: jak poznamenává Marcos Roriz, problém se zdá být ve výchozím jre (na kterém závisí balíčky závislé na Java) na OpenJDK, takže se zdá, že jde o to, jak hacknout default-jre/default-jdk tak, aby ukazoval na Sun Jáva.

49
Ivan

Instalace Sun Java ve starších verzích Ubuntu (9.10 a méně)

Stejný problém jsem měl asi před třemi lety s Ubuntu 8.04. Při použití openjre došlo k podivnému problému a problém byl vyřešen pomocí verze Sun jre. Zde jsou kroky v terminálu, které se vztahují na verze pod 10.04, protože od 10.04 Sun Java byla zrušena a nahrazena openjre:

Sudo apt-get remove openjdk-6-jre default-jre default-jre-headless

Sudo apt-get install Sun-Java6-jre Sun-Java6-bin Sun-Java6-plugin Sun-Java6-fonts

(Vše souvisí se Sluncem Java.)

Poté, pokud jste odstranili openjdk, měli byste pouze Sun Java. Pokud jste ji neodstranili, máte obě. Chcete-li změnit z jednoho na druhého, postupujte takto:

Sudo update-Java-alternatives -l - Zobrazí se vám seznam motorů Java), které můžete použít.

Název alternativy Java je alternativní je název vlevo, takže například openjdk by vypadal takto:

Java-6-openjdk 1061 /usr/lib/jvm/Java-6-openjdk

A nastavili byste systém na openjdk takto:

Sudo update-Java-alternatives -s Java-6-openjdk

Pokud byste chtěli používat Sun, udělali byste to (Po instalaci balíčků Sun):

Sudo update-Java-alternatives -s Java-6-Sun

Pokud chcete použít verzi Java 7, jednoduše změňte výše uvedené číslo 6 pro 7. Například, pokud bych chtěl nainstalovat openjre verzi 7, udělal bych:

Sudo apt-get install openjdk-7-jre default-jre default-jre-headless

Instalace Sun Java na novější verze Ubuntu (10.04 a výše)

Otevřete terminál a zadejte následující příkaz:

Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update   
Sudo apt-get upgrade   
Sudo apt-get install Oracle-Java7-installer

To by mělo na vašem systému nainstalovat verzi Sun Java). Chcete-li ji změnit, jednoduše proveďte následující, pokud máte jiné Java alternativy:

Sudo update-Java-alternatives -s Java-7-Oracle  

Chcete-li, aby byla instalace automatická, zadejte následující příkaz:

Sudo echo Oracle-Java7-installer shared/accepted-Oracle-license-v1-1 select true | Sudo /usr/bin/debconf-set-selections

poté jednoduše proveďte následující nastavení výchozích proměnných prostředí:

Sudo apt-get install Oracle-Java7-set-default

PPA zahrnuje verze 6, 7 a 8. Můžete tedy nainstalovat kteroukoli z nich jednoduše změnou čísla v instalační lince, například:

Sudo apt-get install Oracle-Java8-installer

Nainstalovali byste Java 8.) Po instalaci verze Java verze, kterou chcete použít a nastavit verzi na výchozí pomocí příkazu update-Java-alternatives, můžete zjistit, kterou verzi používáte, zadáním následujícího:

Java -version

Ukáže vám výchozí verzi, kterou právě používáte.

Chtěl bych také zmínit, že OpenJRE/JDK prošla dlouhou cestu před 2 nebo 3 lety, když měla mnoho problémů, které byly vyřešeny změnou na Sun Java.

35
Luis Alvarado

Myslím, že problém je v tom, že některé balíčky Java se spoléhají na default-jre, který ukazuje na openjdk-jre. Nemyslím si, že existuje snadný způsob, jak trvale odinstalovat openjdk. Věc je, že pravděpodobně bude narůstat na openjdk znovu, když instalujete Java balíček/program).

Ale pokud jste ochotni mít obojí, je snadné nastavit runtime programy Java runtime programy (Java, javah, javap, atd.)) Na implementaci Sun.

Sudo apt-get install Sun-Java6-jre Sun-Java6-plugin Sun-Java6-fonts

nebo pokud jste Java dev (nainstalujte sdk a srcs):

Sudo apt-get install Sun-Java6-jdk Sun-Java6-jre Sun-Java6-source

A nastavte ji jako výchozí programy pomocí:

Sudo update-Java-alternatives -s Java-6-Sun
11

Odstranit openjdk a icedtea:

apt-get purge openjdk-\* icedtea-\* icedtea6-\*

do souboru /etc/apt/sources.list přidejte následující

deb http://ppa.launchpad.net/webupd8team/Java/ubuntu YOUR_UBUNTU_VERSION_HERE main

nainstalovat Sun/Oracle JRE nebo JDK:

apt-get install Oracle-jdk7-installer
apt-get install Oracle-Java7-installer 
6
Fabian Zeindl

The .jdk1.6.0_23.jinfo soubor by měl být seznam dodávaných programů a jejich cest. K dispozici je popisná hlavička následovaná prázdným řádkem. Pak seznam programů ve formátu tří polí: typ záznamu (jre/jkd/plugin); název programu; a cesta. Měli byste mít nějaké soubory jinfo, abyste mohli vidět, jak by měl vypadat obsah. To je pravděpodobně používáno alternativním mechanismem k určení, které odkazy mají být vytvořeny. Hlava mého balíčku Sun je.

name = Java-6-Sun-1.6.0.22 
 alias = Java-6-Sun 
 priority = 63 
 section = non-free 
 
 jre ControlPanel /usr/lib/jvm/Java-6-Sun/jre/bin/ControlPanel
jre Java/usr/lib/jvm/Java-6-Sun/jre/bin/Java 
 jre Java_vm/usr/lib/jvm/Java-6-Sun/jre/bin/Java_vm

Pokud chcete přepsat výchozí Java příkazy Java bez použití alternativního mechanismu), vložte cestu Java cesta před/usr/bin v cestě).

Při ruční instalaci instaluji Java v /opt. pro vaši instalaci bych nainstaloval v /opt/jdk1.6.0_23. Pak jsem dal cestu $Java_HOME/bin na začátku mé proměnné PATH.

EDIT: Toto je celý soubor Sun. Poznámka .Java-6-Sun.jinfo je symbolický odkaz na .Java-6-Sun-1.6.0.22.jinfo.

name = Java-6-Sun-1.6.0.22 
 alias = Java-6-Sun 
 priority = 63 
 section = non-free 
 
 jre ControlPanel /usr/lib/jvm/Java-6-Sun/jre/bin/ControlPanel
jre Java/usr/lib/jvm/Java-6-Sun/jre/bin/Java 
 jre Java_vm /usr/lib/jvm/Java-6-Sun/jre/bin/Java_vm
jre javaws/usr/lib/jvm/Java-6-Sun/jre/bin/javaws 
 jre jcontrol /usr/lib/jvm/Java-6-Sun/jre/bin/jcontrol
jre keytool/usr/lib/jvm/Java-6-Sun/jre/bin/keytool 
 jre pack200 /usr/lib/jvm/Java-6-Sun/jre/bin/pack200
jre policytool/usr/lib/jvm/Java-6-Sun/jre/bin/policytool 
 jre rmid /usr/lib/jvm/Java-6-Sun/jre/bin/rmid
jre rmiregistry/usr/lib/jvm/Java-6-Sun/jre/bin/rmiregistry 
 jre unpack200 /usr/lib/jvm/Java-6-Sun/jre/bin/unpack200
jre orbd/usr/lib/jvm/Java-6-Sun/jre/bin/orbd 
 jre servertool /usr/lib/jvm/Java-6-Sun/jre/bin/servertool
jre tnameserv/usr/lib/jvm/Java-6-Sun/jre/bin/tnameserv 
 jre jexec/usr/lib/jvm/Java-6-Sun/jre/lib/jexec 
 jdk HtmlConverter /usr/lib/jvm/Java-6-Sun/bin/HtmlConverter
jdk appletviewer/usr/lib/jvm/Java-6-Sun/bin/appletviewer 
 jdk apt /usr/lib/jvm/Java-6-Sun/bin/apt
jdk extcheck /usr/lib/jvm/Java-6-Sun/bin/extcheck
 jdk idlj /usr/lib/jvm/Java-6-Sun/bin/idlj
jdk jar /usr/lib/jvm/Java-6-Sun/bin/jar
jdk jarsigner/usr /lib/jvm/Java-6-Sun/bin/jarsigner
jdk javac /usr/lib/jvm/Java-6-Sun/bin/javac
jdk javadoc/usr/lib/jvm /Java-6-Sun/bin/javadoc
jdk javah /usr/lib/jvm/Java-6-Sun/bin/javah
jdk javap/usr/lib/jvm/Java-6 -Sun/bin/javap 
 Jdk jconsole /usr/lib/jvm/Java-6-Sun/bin/jconsole
jdk jdb/usr/lib/jvm/Java-6-Sun/bin /jdb
jdk jhat /usr/lib/jvm/Java-6-Sun/bin/jhat
jdk jinfo/usr/lib/jvm/Java-6-Sun/bin/jinfo 
 jdk jmap /usr/lib/jvm/Java-6-Sun/bin/jmap
jdk jps /usr/lib/jvm/Java-6-Sun/bin/jps
jdk jrunscript /usr/lib/jvm/Java-6-Sun/bin/jrunscript
jdk jsadebugd/usr/lib/jvm/Java-6-Sun/bin/jsadebugd 
 jdk jstack /usr/lib/jvm/Java-6-Sun/bin/jstack
jdk jstat/usr/lib/jvm/Java- 6-Ne/bin/jstat 
 Jdk jstatd /usr/lib/jvm/Java-6-Sun/bin/jstatd
jdk native2ascii/usr/lib/jvm/Java-6-Sun/bin/native2ascii 
 jdk rmic /usr/lib/jvm/Java-6-Sun/bin/rmic
jdk schemagen/usr/lib/jvm/Java-6-Sun/bin/schemagen 
 jdk serialver /usr/lib/jvm/Java-6-Sun/bin/serialver
jdk wsgen /usr/lib/jvm/Java-6-Sun/bin/wsgen
 jdk wsimport /usr/lib/jvm/Java-6-Sun/bin/wsimport
jdk xjc /usr/lib/jvm/Java-6-Sun/bin/xjc
plugin xulrunner-1.9 -javaplugin.so /usr/lib/jvm/Java-6-Sun/jre/lib/AMD64/libnpjp2.so
plugin mozilla-javaplugin.so/usr/lib/jvm/Java-6-Sun/jre/lib/AMD64/libnpjp2.so
6
BillThor

Tento řádek jsem přidal do souboru/etc/environment: Java_HOME = "/ usr/lib/jvm/jdk1.6.0_23" a přidal jsem do proměnné PATH Java_HOME/bin, ale OS stále nerozpozná příkaz Java, říká není nainstalován a nabízí mi gcj a openjdk.

Zkontrolovali jste to?

echo $Java_HOME 
echo $PATH

Pokud to nepotřebujete: Nainstalujte openjdk a gcj synapticky nebo pomocí apt-get.

apt-get remove gcj 
apt-get remove openjdk

Zakazoval jsem tedy z alternativ Java=) alternativy a většinou jsem dělal, jak navrhl BillThor, proč jsem mu dal zprávu.

which javac
which Java

by měl ukazovat na místo, kde jste nainstalovali Javu, a kde se nachází v PATH.

4
user unknown
  1. Otevřete System-> Administration-> Synaptic Package Manager a pak úplně OpenJDK odeberte.
  2. Testovací verze Java typing Java -version in Shell (zobrazí Sun Java))
  3. Zadejte Sudo update-Java-alternatives -l
  4. jsi hotov. Nyní máte nainstalován pouze Sun Java a je nastaven jako výchozí jdk)

a funguje to pouze v případě, že máte nainstalován dva soubory jdk a chcete nastavit Sun-Java jako výchozí prostředí

3
Shohrat

To, co dělám na nových strojích Ubuntu 10.10, je

  • přidat Java-6-Sun,
  • odeberte openJDK (přidejte Sun Java nejprve jinak bude odebrána spousta věcí, jako je Tomcat atd.)

Pak je to v pořádku, žádné další závislosti openJDK

2
Bob Yoplait

Odpovědi na tuto otázku pro mě nefungovaly. To znamená, že následující selhalo:

Sudo apt-get purge Sun-Java5-jre Sun-Java6-font Sun-Java6-jre

S chybou:

Virtual packages like 'Sun-Java6-jre' can't be removed

Zkuste místo toho tyto pokyny :

  1. Otevřít buntu Software Center .
  2. Vyhledejte IcedTea.
  3. Odebrat IcedTea Java Plug-in (icedtea-6-jre-cacao), pokud je nainstalován.
  4. Vyberte OpenJDK Java 7 Runtime).
  5. Klikněte na Instalovat.
  6. Počkejte na stažení a instalaci balíčku 41,6 MB.

Nyní je nainstalován OpenJDK (IcedTea), který by vám měl (pokud jste měli tuto chybu) umožnit pokračovat v instalaci JDK Oracle bez chyby.

Viz také:

2
Dave Jarvis

Při použití Ubuntu 10.10 se zdá, že je třeba nejprve označit odstranění libaccess-bridge-Java nejprve v Synaptic a potom označit openjdk-6-jre-headless.

Skončil jsem se seznamem, který má být odstraněn:

ca-certifikáty-Java, icedtea-6-jre-cacao, libaccess-bridge-Java, libaccess-bridge-Java-jni, openjdk-6-jre, openjdk-6-jre-headless, openjdk-6-jre-lib.

Fungovalo to, ale ponechal adresář /etc/Java-6-openjdk pozadu s nejrůznějšími soubory a podadresáři uvnitř, které jsem izoloval v novém adresáři. Nevyskytly se žádné neobvyklé účinky, takže je to pravděpodobně jen zbytek.

To mě nechalo s Java, které jsem stáhl přímo z webu Java). Nicméně, přestože jsem to nastavil jako výchozí a vytvořil odkaz na adresář pluginů Firefoxu , již to nefungovalo. Instalace Sun-Java6-jre a přidružených balíčků gsfonts-x11, odbcinst, odbcinst1debian2, Sun-Java6-bin a unixodbc, přes Synaptic, viděla plugin Java začít plugin) nefunguje znovu. Odebrání odkazu v adresáři pluginů a jeho nahrazení skutečným souborem libnpjp2.so nefungovalo. Použití odkazu na soubory libjavaplugin_oji.so v adresářích ns7 nebo ns7-gcc29 v Java nainstalovaný přes Synaptic také nefungoval. To mi naznačuje, že pro získání nejnovějšího Java plugin ve Firefoxu je možné postupovat podle pokynů na Java) = web, a že integrovaný Linux Java kterékoli odrůdy, která je přítomna) je potřeba ke spuštění stažené Java, která se poté spoléhá na svou činnost na soubory, které ji obklopují, jakmile plugin jak bylo aktivováno. I když úplné porozumění kódu obsahujícímu Java a Linux by bylo vyžadováno, aby se opravdu vyřešily jeho záhady, možná tyto experimenty jsou užitečné při hledání důvodů, proč by v tomto případě mohly být zapotřebí dvě Java). je možné odstranit všechny Java také, pokud to někdo považuje za užitečné).

2
Steve

Nejprve: odstraňte plugin openjdk a icedtea.

Sudo apt-get remove openjdk* icedtea*

Za druhé: zkopírujte soubor .bin jdk do/opt nebo/usr/Java a rozbalte jej.

Sudo cp jdk_1.16.0.bin /usr/Java

Za třetí: vložte odkaz na soubor Java do/usr/bin /

ln -s /usr/Java/jdk_1.6.0/bin/Java /usr/bin/Java
ln -s /usr/Java/jdk_1.6.0/bin/javac /usr/bin/javac

aktualizujte alternativy pomocí alternativ aktualizace

Vytvořte symbolický odkaz na Java Plugin v adresáři pluginy Firefoxu).

Vytvořte symbolický odkaz na soubor Java Plugin libnpjp2.so v adresáři pluginy Firefoxu:

   cd  

<Firefox>/plugins


 ln -s  

<JRE>/lib/i386/libnpjp2.so .

Snad to pomůže.

1
Ubuntuser