16

Ubuntuにopenjdk-7をインストールしようとしていますが、次のエラーが発生します。

$ sudo apt-get install openjdk-7-jre
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package openjdk-7-jre is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package openjdk-7-jre has no installation candidate

いくつかのリポジトリなどが欠落していると思いますが、どこで何を参照するかを見つけることができませんでした。

4

3 に答える 3

13

私は最近、CentOS、openSUSE、UbuntuにJava 7をインストールする必要がありました。多くの苦労と調査を経て、最終的にこれに落ち着きました。これは3つのフレーバーすべてで機能します。

  • ディストリビューションにバンドルされている/同梱されているJREまたはJDKを無視(およびアンインストール)します。それらは価値があるよりも厄介であり、常に最新のアップデートよりもはるかに遅れています。
  • http://www.oracle.com/technetwork/java/javase/downloads/index.htmlからJRE7(または開発する場合はJDK 7)をダウンロードします。
    • JREの場合、64ビットマシンの場合はjre-xxx-linux-x64.tar.gzを、32ビットの場合はjre-xxx-linux-i586.tar.gzを取得します。RPMを気にしないでください。
    • JDKの場合、64ビットマシンの場合はjdk-xxx-linux-x64.tar.gzを、32ビットの場合はjdk-xxx-linux-i586.tar.gzを取得します。
  • rootとして、またはsudoを使用して以下を実行します。
    • #tar -xzvf jdk-xxx-linux-x64.tar.gz(またはダウンロードした方)
    • #mkdir / usr / java
    • #mv jdkx.x.x_xx / usr / java(または、JREの場合、これは抽出されたJREディレクトリになります)
    • #ln -s /usr/java/jdkx.x.x_xx / usr / java / jdkx
    • #ln -s / usr / java / jdkx / usr / java / latest
    • #ln -s / usr / java / latest / usr / java / default
    • #ln -s / usr / java / default / bin / java / usr / bin / java
    • #ln -s / usr / java / default / bin / javac / usr / bin / javac
    • #ln -s / usr / java / default / bin / javah / usr / bin / javah
    • #ln -s / usr / java / default / bin / javadoc / usr / bin / javadoc
    • #ln -s / usr / java / default / bin / javaws / usr / bin / javaws

明らかに、ここでいくつかの空白を埋める必要がありますが、画像を取得する必要があります。実用的な例として、これが私のインストールです(私の目的のために、Java7とJava6の両方のJDKの64ビットバージョンと32ビットバージョンの両方が必要だったので、たくさんあります):

# ls -al /usr/java/
total 24
drwxr-xr-x  6 root root 4096 Sep  2 11:02 .
drwxr-xr-x 14 root root 4096 Aug  9 22:14 ..
lrwxrwxrwx  1 root root   16 Aug 26 20:05 default -> /usr/java/latest
drwxr-xr-x  8 root root 4096 Sep  2 10:52 jdk1.6.0_35
drwxr-xr-x  8 root root 4096 Sep  2 10:52 jdk1.6.0_35-32
drwxr-xr-x  8 root root 4096 Sep  2 10:52 jdk1.7.0_07
drwxr-xr-x  8 root root 4096 Sep  2 10:52 jdk1.7.0_07-32
lrwxrwxrwx  1 root root   11 Sep  2 10:54 jdk6 -> jdk1.6.0_35
lrwxrwxrwx  1 root root   14 Sep  2 10:54 jdk6-32 -> jdk1.6.0_35-32
lrwxrwxrwx  1 root root   11 Sep  2 10:54 jdk7 -> jdk1.7.0_07
lrwxrwxrwx  1 root root   14 Sep  2 10:54 jdk7-32 -> jdk1.7.0_07-32
lrwxrwxrwx  1 root root    4 Sep  2 10:55 latest -> jdk7
# ls -al /usr/bin/java*
lrwxrwxrwx 1 root root 26 Aug 26 20:05 /usr/bin/java -> /usr/java/default/bin/java
lrwxrwxrwx 1 root root 27 Aug 26 20:05 /usr/bin/javac -> /usr/java/default/bin/javac
lrwxrwxrwx 1 root root 29 Aug 26 20:05 /usr/bin/javadoc -> /usr/java/default/bin/javadoc
lrwxrwxrwx 1 root root 27 Aug 26 20:07 /usr/bin/javah -> /usr/java/default/bin/javah
lrwxrwxrwx 1 root root 28 Aug 26 20:05 /usr/bin/javaws -> /usr/java/default/bin/javaws
# java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
于 2012-09-06T23:10:22.897 に答える
4

ubuntu lucid 64 ビットでは、このリンクをチェーンに追加する必要がありました。

ln -s /usr/java/latest /usr/java/default
于 2012-11-12T20:34:13.783 に答える
3

オラクルが Java に代替手段を持つことについて制限的になりつつある方法は、良いことです。openjdk はかなりいいと思います。Ubuntu などの debian システムにインストールするのは簡単です。次のように apt-get を使用してください。

$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk

apt-get キャッシュ/メタデータが openjdk-7 を含むリポジトリの最新の変更で更新されていない場合は、更新が必要です。ディストリビューションがそれほど古くない限り、パッケージ openjdk-7-jre の論理的なインストールも機能するはずです。

于 2013-03-05T04:30:37.353 に答える