LinuxのJava SDKをインストールした後、どこにありますか?


185

apt-get installを使用してJDKをインストールしましたが、jdkフォルダーの場所がわかりません。そのためのパスを設定する必要があります。場所について手掛かりを持っている人はいますか?


1
Linuxディストリビューション:Debian 2.6.26
dinesh707

/usr/local/java/オリジナルのダウンロードしたOracleディストリビューションを試してください。
Zon

回答:


385

これはパッケージシステムに少し依存します... javaコマンドが機能する場合は、入力しreadlink -f $(which java)てjavaコマンドの場所を見つけることができます。OpenSUSEシステムでは、今は戻ります/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(ただし、これはを使用するシステムではありませんapt-get)。


Ubuntuでは、それはそれはしているように見えます /usr/lib/jvm/java-6-openjdk/ OpenJDKのための、および他のいくつかのサブディレクトリに/usr/lib/jvm/サンズJDKのための(とだけでなく、他の実装、私は思います)。

Debianも同じです。


特定のパッケージについて、dpkgをクエリすることにより、インストールするファイルとそれらのインストール先を決定できます。たとえば、 'openjdk-6-jdk'パッケージの場合:dpkg -L openjdk-6-jdk


1
私が見たいくつかの設定で/ usr / javaを見る
jlb83

AndroidスタジオでJDKパスを追加する場合は、これを追加します/ usr / lib / jvm / java-8-oracle /
Rohit Rokde

3
私の道はのようです/usr/lib/jvm/java-7-openjdk-amd64
einverne 2016年

2
私はreadlinkが最もエレガント(かつ効率的)だと思いますがreadlink -f $(which javac) 、同じマシン上にJDKとJREの奇妙な組み合わせがある場合に備えて、「c」に注意してください。JDKにはコンパイラ(javac)が含まれていますが、JREには含まれていません。ただし、パスが正しくない場合は失敗し、これを試すことができfind /usr/java -wholename '*ava/jdk*' -pruneます。以下のコメントで注記します。
Steven the Easy

@Winnemuccaそれは私にとってはうまくいきます、あなたはjavaがどこにあるのかを見つけることができます、そしてあなたはjdkのパスを見つけることができます
einverne 2017年

45
update-java-alternatives -l

どのJava実装がシステムのデフォルトであり、ファイルシステムのどこにインストールされているかがわかります。その他のオプションについては、マニュアルを確認してください。


7
これは(少なくとも)debian固有です。他のディストリビューションにはこれがない可能性があります
dequis 2014年

2
@dequis、それはdebianに固有の回答です。なぜなら、言及された質問apt-getとディストリビューションはだからですDebian 2.6.26。AFAIK、それはすべてのdebian派生物に対して同じであるべきです。
forcefsck 2014年

2
他の人のために指摘しているだけです。私はそれがこの特定の質問に有効であることを知っています。
2014年

1
update-alternatives --list | grep javaがRHELで私のために働いた
Upen

30
$ which java 

あなたのようなものを与えるべきです

/usr/bin/java

2
本当。apt-getのインストール後だと
思い

6
これは実際には完全なJDKを指すわけではありません。1.これはシンボリックリンクであり、シンボリックリンクを読んでも、バイナリもJDK内にありません。たとえば、コマンドを実行するreadlink -f $(which javac)と、が出力され/usr/lib/jvm/java-8-oracle/bin/javacます。そのbinフォルダーはJDKではありません。JDKが電流$JAVA_HOMEにのパスが含まれているかどうかを確認することであるかどうかを確認するための一般的な酸-塩基テストlib/tools.jar。そのキャストで/usr/lib/jvm/java-8-oracle/binは真実ではないため、JDKではありません。
ゾンビ2016年

Centos / RHLの場合これはJDK(インストールされている場合)を見つけるのに適していますが、 find /usr/java -wholename '*ava/jdk*' -prune 動作はOpenJDKとOracle Javaのどちらについて話しているのか、そもそもそれがどのようにインストールされたのかによって異なります。
Steven the Easy

12

この質問は移動しますが、次のことができます

which javac

または

cd /
find . -name 'javac'

私は2番目のオプションが好きです-複数のJRE / JDKがあり、それらすべてを見つけたい場合は、シンプルで便利です。
Amos M. Carpenter

「find / -name 'javac'」は入力が少なくなりますが、管理者(root)権限が必要です。そうしないと、多くの権限拒否メッセージが表示されます。
簡単に面白がるスティーブン

9

それを見つけるために検索を使用してください。それは/usrどこかにあるはずです:

find /usr -name java

コマンドを実行するときに、実際に見つかった結果を難読化する「Permission denied」メッセージが多すぎる場合は、単にstderrを/ dev / nullにリダイレクトします。

find /usr -name java 2> /dev/null

1
root(管理者)でない場合、多くのPermission Deniedメッセージが表示されます。
Steven the Easy

7

Javaフォルダーパスを見つける別の最良の方法はalternatives、Fedora Linuxでコマンドを使用することです(私はUbuntuでそれを知っていますが、Googleからのこの見出しを見出しだけでヒットしました)。フェドーラ味の答えを探している私のような人たちを共有したいだけです。

Javaに関するすべての情報を表示するには

alternatives --display java

1
これは私にとってはうまくいき、Fedoraで/ usr / java / jdk- [version]を返します
Sina Madani

3

3つのステッププロセス:最初に、ターミナルを開きます->次の$ whereis java ような出力が表示されます。 java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

2番目:次の ls -l /usr/bin/java ような出力が得られます。 lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

3番目: ls -l /etc/alternatives/java 出力はJDKパスです: lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java



1

コマンド:sudo update-alternatives --config javaインストールされているすべてのJavaバージョンの完全なパスを検索します


1

この質問はまだ関連性があるようで、答えは移動するターゲットのようです。

私のdebianシステム(バスター)では:

> update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

ただし、実際にそこを見ると、将来のメンテナンスを簡略化するために、パッケージシステムによって複数のディレクトリとシンボリックリンクが配置されていることがわかります。

実際のディレクトリはjava-11-openjdk-amd64で、別のシンボリックリンクがありdefault-javaます。openjdk-11ディレクトリもありますが、source.zipファイルのみが含まれているようです。

これを踏まえると、Debianのみの場合、使用するのに最適な値は次のようになると思います /usr/lib/jvm/default-java場合、まったく異なるバージョンのJavaをインストールしたり、ベンダーを切り替えたりする場合でも、これは常に有効であるます。

パスを知りたい通常の理由は、一部のアプリケーションがそれを望んでいるためであり、バージョン番号を変更したアップグレードを実行したために、おそらくそのアプリケーションが壊れたくないでしょう。


0

OpenSUSE 13.1 / 13.2の場合:/usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
バージョン番号は1.7.x 1.8.xなどにすることができます。インストールしたソフトウェアマネージャーのバージョンを確認してください...

アンドレ


0

Linux Fedora30では、完全なJava JDKのいくつかのバージョン、具体的にはパッケージ名を使用できます。

java-1.8.0-openjdk-devel.x86_64 
java-11-openjdk-devel.x86_64

インストールすると、次の場所にあります。 /usr/lib/jvm

完全な開発JDK(単純なランタイムのみのJREとは異なる)の場所/ディレクトリを選択するには、次のエントリを探します。

ls -ld java*openjdk*

以下は、特定のバージョンへのリンクである2つの適切な選択肢です。バージョンを選択する必要があります。

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk

0

これは私のために働いた最良の方法ですこのコマンドを実行してください:-

$(dirname $(readlink $(which javac)))/java_home
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.