回答:
これはパッケージシステムに少し依存します... 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のための(とだけでなく、他の実装、私は思います)。
特定のパッケージについて、dpkgをクエリすることにより、インストールするファイルとそれらのインストール先を決定できます。たとえば、 'openjdk-6-jdk'パッケージの場合:dpkg -L openjdk-6-jdk
/usr/lib/jvm/java-7-openjdk-amd64
。
readlink -f $(which javac)
、同じマシン上にJDKとJREの奇妙な組み合わせがある場合に備えて、「c」に注意してください。JDKにはコンパイラ(javac)が含まれていますが、JREには含まれていません。ただし、パスが正しくない場合は失敗し、これを試すことができfind /usr/java -wholename '*ava/jdk*' -prune
ます。以下のコメントで注記します。
update-java-alternatives -l
どのJava実装がシステムのデフォルトであり、ファイルシステムのどこにインストールされているかがわかります。その他のオプションについては、マニュアルを確認してください。
apt-get
とディストリビューションはだからですDebian 2.6.26
。AFAIK、それはすべてのdebian派生物に対して同じであるべきです。
$ which java
あなたのようなものを与えるべきです
/usr/bin/java
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ではありません。
find /usr/java -wholename '*ava/jdk*' -prune
動作はOpenJDKとOracle Javaのどちらについて話しているのか、そもそもそれがどのようにインストールされたのかによって異なります。
この質問は移動しますが、次のことができます
which javac
または
cd /
find . -name 'javac'
それを見つけるために検索を使用してください。それは/usr
どこかにあるはずです:
find /usr -name java
コマンドを実行するときに、実際に見つかった結果を難読化する「Permission denied」メッセージが多すぎる場合は、単にstderrを/ dev / nullにリダイレクトします。
find /usr -name java 2> /dev/null
Javaフォルダーパスを見つける別の最良の方法はalternatives
、Fedora Linuxでコマンドを使用することです(私はUbuntuでそれを知っていますが、Googleからのこの見出しを見出しだけでヒットしました)。フェドーラ味の答えを探している私のような人たちを共有したいだけです。
Javaに関するすべての情報を表示するには
alternatives --display java
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
この質問はまだ関連性があるようで、答えは移動するターゲットのようです。
私の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をインストールしたり、ベンダーを切り替えたりする場合でも、これは常に有効であるます。
パスを知りたい通常の理由は、一部のアプリケーションがそれを望んでいるためであり、バージョン番号を変更したアップグレードを実行したために、おそらくそのアプリケーションが壊れたくないでしょう。
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