web-dev-qa-db-ja.com

Java 8 OpenDKへのJDKインストール-代替案の更新

私はこれに対する答えを求めて多くのOpenSUSEフォーラムを検索しましたが、今のところ見つかりません。要するに、OracleからJDKのRPMをインストールすると、次のメッセージが表示されます。

> Sudo zypper install jdk-8u111-linux-x64.rpm
[Sudo] password for root:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  jdk1.8.0_111

1 new package to install.
Overall download size: 158.3 MiB. Already cached: 0 B. After the operation, additional 258.5 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package jdk1.8.0_111-2000:1.8.0_111-fcs.x86_64           (1/1), 158.3 MiB (258.5 MiB unpacked)
Checking for file conflicts: ......................................................................[done]
(1/1) Installing: jdk1.8.0_111-2000:1.8.0_111-fcs.x86_64 ..........................................[done]
Additional rpm output:
Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...
update-alternatives: using /usr/Java/jdk1.8.0_111/jre/bin/Java to provide /usr/bin/Java (Java) in auto mode
update-alternatives: error: alternative ControlPanel can't be slave of javac: it is a slave of Java
warning: %post(jdk1.8.0_111-2000:1.8.0_111-fcs.x86_64) scriptlet failed, exit status 2

高レベルの冗長性のために私を許してください、私はあなたが私が見るように正確に見てほしかっただけです。これは、OpenSUSE Tumbleweedの新規インストールです。

OpenSUSE Leap 42.2にも新規インストールしてインストールしようとしました。最初の試みの後で、Javaサポートなし(OpenJDKなし)で再ロードし、このインストールで行ったように最初から開始しました。インストールのガイドに従ってJava。Javaインストールされているもの、Java以前にインストールされているOpenJDK、JDKと何らかの理由でJREなど.

記録のために、Java自体は機能していますが、明らかにコントロールパネルは機能していません。手動でupdate-alternativesを使用しようとしました。ゼロからコンパイルしようとしました、リロードしました、私はLeapからTumbleweedに切り替えました。役立つ可能性のあるその他の情報をいくつか示します。

> Sudo update-alternatives --list Java
/usr/Java/jdk1.8.0_111/jre/bin/Java
> Sudo update-alternatives --config Java
There is only one alternative in link group Java (providing /usr/bin/Java): /usr/Java/jdk1.8.0_111/jre/bin/Java
Nothing to configure.
> Java -version
Java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
> javac -version
javac 1.8.0_111

繰り返しになりますが、Javaが機能していることがわかります。しかし、これが非常に簡単に再現できる理由と修正方法を理解したいと思います。

4
mrUlrik

このインストールを実行するプロセスは、ほとんどの人が考えているよりも簡単であり、驚くべきことに、これを行う方法に関する優れた情報や直接的な情報はあまりありません。上記の答えは正しいですが、少し古い要素がいくつかあります。

  1. Oracle JDK 1.8.0_151をダウンロード

    #// rpm Installation Oracle JDK 1.8.0_151
    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"  http://download.Oracle.com/otn-pub/Java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm
    
  2. インストールコマンドを実行する

    #// installation command
    rpm -ivh jdk-8u151-linux-x64.rp
    
  3. バージョンがあなたの好みに合わせて設定/インストールされていることを確認してください

    Java -version
    
  4. コマンドラインインターフェイスまたはエディターを使用して環境変数を設定する

    #//Command line 
    export Java_HOME=/usr/Java/jdk1.8.0_151/
    export PATH=$PATH:/usr/Java/jdk1.8.0_151/bin
    
    #// set variables at the END of the file etc/profile
    Sudo vim /etc/profile/
    
    #//Variables to set within the file
    Java_HOME=/usr/Java/jdk1.8.0_151
    PATH=$Path:$HOME/bin:@Java_HOME/bin
    export Java_HOME
    export PATH
    
    #//To save / exit vim execute the following key strokes
    <ESC>
    <:>
    <x>
    
4
Jason Wolf

かなりの数時間の闘争の後、私はついにこの厄介な問題に取り組みました。

rpm -ivh jdk-8u121-linux-x64.rpmでjdkを直接インストールすることはできないようですが、jdk-8u121-linux-x64.tar.gzをダウンロードして手動で解凍します。

(2017年1月8日改訂)-次の関数を使用して、rpmを介して直接インストールできます。

   #//rpm install
   rpm -ivh jdk-8u151-linux-x64.rpm

ほとんどの手順は このWebページ にあり、インストールするjdkのバージョンに注意してください。

Jdk-8u121 x64を例にとると、根本原因への切り替えを推奨します。そうしないと、多くのSudoが発生します。

1. jdkをダウンロードし、jdk-8u121-linux-x64.tar.gzを選択します

http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

2 .cd /path/to/downloaded/Java

3 .tar -xzf ./jdk-7uX-linux-XX.tar.gz

4.Open JDKはデフォルトで/usr/lib64にインストールされているので、Oracle Javaも/usr/lib64に移動します:mv ./jdk1.8.0_121/ /usr/lib64/

5 ./usr/lib64/jdk1.X.X_XX/へのシンボリックリンクを作成します(これは後で更新するときに重要になります):ln -s -T /usr/lib64/jdk1.X.X_XX/ /usr/lib64/jdk_Oracle

6.インストールに関連するmanファイルを圧縮します。

gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/Java.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/keytool.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/orbd.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/policytool.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmid.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmiregistry.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/servertool.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/tnameserv.1)

7. jvm-exportsのディレクトリを準備し、バージョンに注意してください!

mkdir /usr/lib64/jvm-exports/jdk_Oracle
cd /usr/lib64/jvm-exports/jdk_Oracle


ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jaas-1.8.0_Orac.jar
ln -s jaas-1.8.0_Orac.jar jaas-1.8.0.jar
ln -s jaas-1.8.0_Orac.jar jaas.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/jce.jar jce-1.8.0_Orac.jar
ln -s jce-1.8.0_Orac.jar jce-1.8.0.jar
ln -s jce-1.8.0_Orac.jar jce.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jdbc-stdext-1.8.0_Orac.jar
ln -s jdbc-stdext-1.8.0_Orac.jar jdbc-stdext-1.8.0.jar
ln -s jdbc-stdext-1.8.0_Orac.jar jdbc-stdext-3.0.jar
ln -s jdbc-stdext-1.8.0_Orac.jar jdbc-stdext.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-1.8.0_Orac.jar
ln -s jndi-1.8.0_Orac.jar jndi-1.8.0.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-cos-1.8.0_Orac.jar
ln -s jndi-cos-1.8.0_Orac.jar jndi-cos-1.8.0.jar
ln -s jndi-cos-1.8.0_Orac.jar jndi-cos.jar
ln -s jndi-1.8.0_Orac.jar jndi.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-ldap-1.8.0_Orac.jar
ln -s jndi-ldap-1.8.0_Orac.jar jndi-ldap-1.8.0.jar
ln -s jndi-ldap-1.8.0_Orac.jar jndi-ldap.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar jndi-rmi-1.8.0_Orac.jar
ln -s jndi-rmi-1.8.0_Orac.jar jndi-rmi-1.8.0.jar
ln -s jndi-rmi-1.8.0_Orac.jar jndi-rmi.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/jsse.jar jsse-1.8.0_Orac.jar
ln -s jsse-1.8.0_Orac.jar jsse-1.8.0.jar
ln -s jsse-1.8.0_Orac.jar jsse.jar
ln -s /usr/lib64/jdk_Oracle/jre/lib/rt.jar sasl-1.8.0_Orac.jar
ln -s sasl-1.8.0_Orac.jar sasl-1.8.0.jar
ln -s sasl-1.8.0_Orac.jar sasl.jar


/usr/sbin/update-alternatives --install /usr/bin/Java java /usr/lib64/jdk_Oracle/bin/Java 3 --slave /usr/share/man/man1/Java.1.gz Java.1.gz /usr/lib64/jdk_Oracle/man/man1/Java.1.gz --slave /usr/lib64/jvm/jre jre /usr/lib64/jdk_Oracle/jre --slave /usr/lib64/jvm-exports/jre jre_exports /usr/lib64/jvm-exports/jdk_Oracle --slave /usr/bin/keytool keytool /usr/lib64/jdk_Oracle/bin/keytool --slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/lib64/jdk_Oracle/man/man1/keytool.1.gz --slave /usr/bin/orbd orbd /usr/lib64/jdk_Oracle/bin/orbd --slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/lib64/jdk_Oracle/man/man1/orbd.1.gz --slave /usr/bin/policytool policytool /usr/lib64/jdk_Oracle/bin/policytool --slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/lib64/jdk_Oracle/man/man1/policytool.1.gz --slave /usr/bin/rmid rmid /usr/lib64/jdk_Oracle/bin/rmid --slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/lib64/jdk_Oracle/man/man1/rmid.1.gz --slave /usr/bin/rmiregistry rmiregistry /usr/lib64/jdk_Oracle/bin/rmiregistry --slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/lib64/jdk_Oracle/man/man1/rmiregistry.1.gz --slave /usr/bin/servertool servertool /usr/lib64/jdk_Oracle/bin/servertool --slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/lib64/jdk_Oracle/man/man1/servertool.1.gz --slave /usr/bin/tnameserv tnameserv /usr/lib64/jdk_Oracle/bin/tnameserv --slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/lib64/jdk_Oracle/man/man1/tnameserv.1.gz

8.インストールに関連するmanファイルを圧縮します。

gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/appletviewer.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/apt.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/extcheck.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jar.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jarsigner.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javac.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javadoc.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javah.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/javap.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jcmd.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jconsole.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jdb.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jhat.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jinfo.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jmap.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jps.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jrunscript.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jsadebugd.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jstack.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jstat.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/jstatd.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/native2ascii.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/pack200.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/rmic.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/schemagen.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/serialver.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/unpack200.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/wsgen.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/wsimport.1)
gzip $(readlink -f /usr/lib64/jdk_Oracle/man/man1/xjc.1)




/usr/sbin/update-alternatives --install /usr/bin/javac javac /usr/lib64/jdk_Oracle/bin/javac 3 \
--slave /usr/bin/appletviewer appletviewer /usr/lib64/jdk_Oracle/bin/appletviewer \
--slave /usr/share/man/man1/appletviewer.1.gz appletviewer.1.gz /usr/lib64/jdk_Oracle/man/man1/appletviewer.1.gz \
--slave /usr/bin/apt apt /usr/lib64/jdk_Oracle/bin/apt \
--slave /usr/share/man/man1/apt.1.gz apt.1.gz /usr/lib64/jdk_Oracle/man/man1/apt.1.gz \
--slave /usr/bin/extcheck extcheck /usr/lib64/jdk_Oracle/bin/extcheck \
--slave /usr/share/man/man1/extcheck.1.gz extcheck.1.gz /usr/lib64/jdk_Oracle/man/man1/extcheck.1.gz \
--slave /usr/bin/jar jar /usr/lib64/jdk_Oracle/bin/jar \
--slave /usr/share/man/man1/jar.1.gz jar.1.gz /usr/lib64/jdk_Oracle/man/man1/jar.1.gz \
--slave /usr/bin/jarsigner jarsigner /usr/lib64/jdk_Oracle/bin/jarsigner \
--slave /usr/share/man/man1/jarsigner.1.gz jarsigner.1.gz /usr/lib64/jdk_Oracle/man/man1/jarsigner.1.gz \
--slave /usr/lib64/jvm/Java java_sdk /usr/lib64/jdk_Oracle \
--slave /usr/lib64/jvm-exports/Java java_sdk_exports /usr/lib64/jvm-exports/jdk_Oracle \
--slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/lib64/jdk_Oracle/man/man1/javac.1.gz \
--slave /usr/bin/javadoc javadoc /usr/lib64/jdk_Oracle/bin/javadoc \
--slave /usr/share/man/man1/javadoc.1.gz javadoc.1.gz /usr/lib64/jdk_Oracle/man/man1/javadoc.1.gz \
--slave /usr/bin/javah javah /usr/lib64/jdk_Oracle/bin/javah \
--slave /usr/share/man/man1/javah.1.gz javah.1.gz /usr/lib64/jdk_Oracle/man/man1/javah.1.gz \
--slave /usr/bin/javap javap /usr/lib64/jdk_Oracle/bin/javap \
--slave /usr/share/man/man1/javap.1.gz javap.1.gz /usr/lib64/jdk_Oracle/man/man1/javap.1.gz \
--slave /usr/share/man/man1/jcmd.1.gz jcmd.1.gz /usr/lib64/jdk_Oracle/man/man1/jcmd.1.gz \
--slave /usr/bin/jconsole jconsole /usr/lib64/jdk_Oracle/bin/jconsole \
--slave /usr/share/man/man1/jconsole.1.gz jconsole.1.gz /usr/lib64/jdk_Oracle/man/man1/jconsole.1.gz \
--slave /usr/bin/jdb jdb /usr/lib64/jdk_Oracle/bin/jdb \
--slave /usr/share/man/man1/jdb.1.gz jdb.1.gz /usr/lib64/jdk_Oracle/man/man1/jdb.1.gz \
--slave /usr/bin/jhat jhat /usr/lib64/jdk_Oracle/bin/jhat \
--slave /usr/share/man/man1/jhat.1.gz jhat.1.gz /usr/lib64/jdk_Oracle/man/man1/jhat.1.gz \
--slave /usr/bin/jinfo jinfo /usr/lib64/jdk_Oracle/bin/jinfo \
--slave /usr/share/man/man1/jinfo.1.gz jinfo.1.gz /usr/lib64/jdk_Oracle/man/man1/jinfo.1.gz \
--slave /usr/bin/jmap jmap /usr/lib64/jdk_Oracle/bin/jmap \
--slave /usr/share/man/man1/jmap.1.gz jmap.1.gz /usr/lib64/jdk_Oracle/man/man1/jmap.1.gz \
--slave /usr/bin/jps jps /usr/lib64/jdk_Oracle/bin/jps \
--slave /usr/share/man/man1/jps.1.gz jps.1.gz /usr/lib64/jdk_Oracle/man/man1/jps.1.gz \
--slave /usr/bin/jrunscript jrunscript /usr/lib64/jdk_Oracle/bin/jrunscript \
--slave /usr/share/man/man1/jrunscript.1.gz jrunscript.1.gz /usr/lib64/jdk_Oracle/man/man1/jrunscript.1.gz \
--slave /usr/bin/jsadebugd jsadebugd /usr/lib64/jdk_Oracle/bin/jsadebugd \
--slave /usr/share/man/man1/jsadebugd.1.gz jsadebugd.1.gz /usr/lib64/jdk_Oracle/man/man1/jsadebugd.1.gz \
--slave /usr/bin/jstack jstack /usr/lib64/jdk_Oracle/bin/jstack \
--slave /usr/share/man/man1/jstack.1.gz jstack.1.gz /usr/lib64/jdk_Oracle/man/man1/jstack.1.gz \
--slave /usr/bin/jstat jstat /usr/lib64/jdk_Oracle/bin/jstat \
--slave /usr/share/man/man1/jstat.1.gz jstat.1.gz /usr/lib64/jdk_Oracle/man/man1/jstat.1.gz \
--slave /usr/bin/jstatd jstatd /usr/lib64/jdk_Oracle/bin/jstatd \
--slave /usr/share/man/man1/jstatd.1.gz jstatd.1.gz /usr/lib64/jdk_Oracle/man/man1/jstatd.1.gz \
--slave /usr/bin/native2ascii native2ascii /usr/lib64/jdk_Oracle/bin/native2ascii \
--slave /usr/share/man/man1/native2ascii.1.gz native2ascii.1.gz /usr/lib64/jdk_Oracle/man/man1/native2ascii.1.gz \
--slave /usr/bin/pack200 pack200 /usr/lib64/jdk_Oracle/bin/pack200 \
--slave /usr/share/man/man1/pack200.1.gz pack200.1.gz /usr/lib64/jdk_Oracle/man/man1/pack200.1.gz \
--slave /usr/bin/rmic rmic /usr/lib64/jdk_Oracle/bin/rmic \
--slave /usr/share/man/man1/rmic.1.gz rmic.1.gz /usr/lib64/jdk_Oracle/man/man1/rmic.1.gz \
--slave /usr/bin/schemagen schemagen /usr/lib64/jdk_Oracle/bin/schemagen \
--slave /usr/share/man/man1/schemagen.1.gz schemagen.1.gz /usr/lib64/jdk_Oracle/man/man1/schemagen.1.gz \
--slave /usr/bin/serialver serialver /usr/lib64/jdk_Oracle/bin/serialver \
--slave /usr/share/man/man1/serialver.1.gz serialver.1.gz /usr/lib64/jdk_Oracle/man/man1/serialver.1.gz \
--slave /usr/bin/unpack200 unpack200 /usr/lib64/jdk_Oracle/bin/unpack200 \
--slave /usr/share/man/man1/unpack200.1.gz unpack200.1.gz /usr/lib64/jdk_Oracle/man/man1/unpack200.1.gz \
--slave /usr/bin/wsgen wsgen /usr/lib64/jdk_Oracle/bin/wsgen \
--slave /usr/share/man/man1/wsgen.1.gz wsgen.1.gz /usr/lib64/jdk_Oracle/man/man1/wsgen.1.gz \
--slave /usr/bin/wsimport wsimport /usr/lib64/jdk_Oracle/bin/wsimport \
--slave /usr/share/man/man1/wsimport.1.gz wsimport.1.gz /usr/lib64/jdk_Oracle/man/man1/wsimport.1.gz \
--slave /usr/bin/xjc xjc /usr/lib64/jdk_Oracle/bin/xjc \
--slave /usr/share/man/man1/xjc.1.gz xjc.1.gz /usr/lib64/jdk_Oracle/man/man1/xjc.1.gz

9.Webブラウザプラグイン

/usr/sbin/update-alternatives --install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/lib64/jdk_Oracle/jre/lib/AMD64/libnpjp2.so 3 --slave /usr/bin/javaws javaws /usr/lib64/jdk_Oracle/jre/bin/javaws --slave /usr/share/man/man1/javaws.1 javaws.1 /usr/lib64/jdk_Oracle/man/man1/javaws.1

10。Javaコントロールパネルの追加

ln -s /usr/lib64/jdk_Oracle/jre/bin/jcontrol /usr/bin/
ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/hicolor/16x16/apps/Sun-jcontrol.png /usr/share/icons/hicolor/16x16/apps/
ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/hicolor/48x48/apps/Sun-jcontrol.png /usr/share/icons/hicolor/48x48/apps/
ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/LowContrast/16x16/apps/Sun-jcontrol.png /usr/share/icons/locolor/16x16/apps/
ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/icons/LowContrast/48x48/apps/Sun-jcontrol.png /usr/share/icons/locolor/48x48/apps/
ln -s /usr/lib64/jdk_Oracle/jre/lib/desktop/applications/Sun_Java.desktop /usr/share/applications

そして、それだけです! openSUSE Wikiの詳細

1
Junfeng Qiao