2016-10-05 2 views
0

Ich versuche, das JDK zu finden, um jstatd einzurichten, aber ich kann es nicht finden.Kann JDK in Linux nicht finden VM

Wenn ich java -version Typ I erhalten die folgende Antwort

java version "1.8.0_101" 
Java(TM) SE Runtime Environment (build 1.8.0_101-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode) 

Dann versuchte ich es mit den folgenden zwei Befehle Lokalisierung:

  1. which java

Antwort: /usr/bin/java

Ich habe versucht, es zu cd aber ich bekomme -bash: cd: /usr/bin/java: Not a directory

  1. Dann habe ich versucht, diese whereis java
    Antwort: java: /usr/bin/java /usr/bin/X11/java /usr/share/java /usr/share/man/man1/java.1.gz

ich wieder versucht, cd es. Aber immer noch kein Verzeichnis. Wo könnte es installiert werden?

+0

Nach den Antworten haben Sie gesagt, dass Sie es in/usr/lib/jvm gefunden haben. Dort befindet sich die JVM. Sie fragen nach dem JDK. Du solltest 'which javac' machen. –

+0

@Klitos Kyriacou Ja dachte ich auch gleich. Also habe ich nie das 'jvm'-Verzeichnis überprüft. Aber ich habe das JDK im 'jvm'-Verzeichnis gefunden. – amitection

Antwort

1

Normalerweise befinden sich jdk's und jre's unter /usr/lib/java oder /usr/lib/jvm. Um sicher zu sein, tun Sie eine ls -la $(which java), sollte es ein Symlink sein, der auf die echte binäre verweist (Sie könnten diese Operation wiederholen müssen, normalerweise, wenn es Alternativen gibt, die diese Verbindung auf eine andere Verbindung verweisen könnte).

+0

Danke! Gefunden in/usr/lib/jvm. Mir war nicht bewusst, dass es auch da sein könnte. – amitection

3

Sind Sie sicher java binär ist kein symbolischer Link (vielleicht von einer zweiten Ebene)? Ich bin mir ziemlich sicher, dass es so ist.

Führen Sie einfach ls -l auf /usr/bin/java und entdecken Sie den tatsächlichen Standort.

Für mich ist die letzte tatsächliche Lage ist /usr/lib/jvm/java-7-openjdk-amd64/:

[email protected]:~$ java -version 
java version "1.7.0_101" 
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1) 
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode) 
[email protected]:~$ which java 
/usr/bin/java 
[email protected]:~$ ls -l /usr/bin/java 
lrwxrwxrwx 1 root root 22 Aug 14 16:23 /usr/bin/java -> /etc/alternatives/java 
[email protected]:~$ ls -l /etc/alternatives/java 
lrwxrwxrwx 1 root root 46 Aug 14 16:23 /etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 
[email protected]:~$ ls /usr/lib/jvm/java-7-openjdk-amd64/ 
bin docs jre man 
+0

Yup. Ich habe es in/usr/lib/jvm/gefunden. Vielen Dank! – amitection

1

/usr/bin/java ist nicht Verzeichnisdatei. Sie können die endgültige Standort-Java-Datei wie folgt finden;

readlink -f $(which java); 

Standardposition JDK ist usualy in/usr/lib/JVM/

Eg; meine config:

[email protected]:$ ls -alrt /usr/bin/java 
lrwxrwxrwx 1 root root 22 Dec 19 2014 /usr/bin/java -> /etc/alternatives/java 

/usr/bin/java Links zu/etc/alternatives/java

[email protected]:$ ls -alrt /etc/alternatives/java 
lrwxrwxrwx 1 root root 39 Jul 7 2015 /etc/alternatives/java -> /usr/lib/jvm/java-8-oracle/jre/bin/java 

/etc/alternatives/java Links zu/usr/lib/jvm/java-8 -oracle/jre/bin/java

[email protected]:$/usr/lib/jvm/java-8-oracle/jre/bin$ ls -arlt /usr/lib/jvm/java-8-oracle/jre/bin/java 
-rwxr-xr-x 1 root root 7734 Mar 27 2016 /usr/lib/jvm/java-8-oracle/jre/bin/java 

ersten Buchstaben - in -rwxr-xr-x bedeutet, dass dieser Dateityp-Datei nicht Verzeichnis ist.

+1

'/ etc/alternatives/java' ist ein weiterer Symlink, dieser sollte auf den echten verweisen. –