Problém
JDK/JRE od společnosti Oracle byl nainstalován na počítači se systémem Linux podle pokynů k instalaci. Příkaz „java“ nespustí JVM, který byl nainstalován. Aplikace Java se nemusí spustit, pokud je nalezeno neočekávané prostředí Java Runtime Environment.
Příklad ze serveru Red Hat:
$ java -version java version "1.6.0_17" OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64) OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Odmítnutí odpovědnosti :Adresáře a cesty použité v tomto článku představují fiktivní ukázkové názvy, které tvoří příklad. Jakákoli podobnost se skutečným kódem je čistě náhodná a není zamýšlena jiným způsobem.
Řešení
Nový JDK/JRE od společnosti Oracle byl nainstalován podle pokynů k instalaci. Příklad ze serveru Red Hat:
# rpm -ivh jdk-7u6-linux-x64.rpm
Příkaz „java“ je obvykle symbolický odkaz v /usr/bin, který ukazuje (přímo nebo nepřímo) na skutečný spustitelný soubor Java. /usr/bin je obvykle jednou z prvních položek v proměnné prostředí PATH, a proto /usr/bin/java je obvykle ten, který je po spuštění Java nalezen jako první.
Pro následující možná řešení předpokládejme, že jste nainstalovali JDK do /usr/java/jdk1.7.0_06/.
Řešení 1:Upravte PATH
Upravte proměnnou prostředí PATH tak, aby bylo možné najít nové Oracle JRE/JDK dříve, než bude možné nalézt jakékoli jiné prostředí JRE.
Například:
$ export PATH=/usr/java/jdk1.7.0_06/bin:$PATH
$ java -version java version "1.7.0_06" Java(TM) SE Runtime Environment (build 1.7.0_06-b24) Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
Řešení 2:Použijte absolutní cestu
Ke spuštění aplikací Java použijte úplnou absolutní cestu k nově nainstalovanému Oracle JRE/JDK.
Například:
$ /usr/java/jdk1.7.0_06/bin/java -version java version "1.7.0_06" Java(TM) SE Runtime Environment (build 1.7.0_06-b24) Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
Řešení 3:Použijte alternativy aktualizace
Použijte příkaz s názvem update-alternatives abyste Linuxu řekli, kde najde Oracle JRE/JDK, který jste právě nainstalovali.
Poznámka :ruční oprava symbolických odkazů jako /usr/bin/java nebo /etc/alternatives/java může způsobit, že příkaz update-alternatives zobrazí nesprávné hodnoty nebo se dokonce nespustí. Proto se doporučuje použít příkaz update-alternatives k instalaci a konfiguraci požadovaných symbolických odkazů namísto ruční úpravy symbolických odkazů.Použijte „su“ na RedHat, použijte „sudo“ na Ubuntu:
$ su - # update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.7.0_06/bin/java" 1 # update-alternatives --config java There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java *+ 2 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java 3 /usr/java/jdk1.7.0_06/bin/java Enter to keep the current selection[+], or type selection number: 3 # exit
$ java -version java version "1.7.0_06" Java(TM) SE Runtime Environment (build 1.7.0_06-b24) Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
Pro více informací prosím navštivte manuálovou stránku update-alternatives.
$ man update-alternatives