2013-08-14 1 views
13

abzurufen Wie kann ich Java-Händlerinformationen abrufen, ohne folgende Skript zu kompilieren und laufen mit:Wie Java-Händlerinformationen

import java.util.Properties; 
public class test 
{ 
    public static void main(String args[]) 
    { 
      Properties prop = System.getProperties(); 
      System.out.println ("JVM Vendor : " + prop.getProperty("java.vendor")); 
    } 
} 

ich es nicht in Kommandozeilenoptionen finden konnten.

Antwort

24

Hinweis: Im Folgenden wird für die Oracle JVM arbeiten - nicht auf andere getestet. (Um Details zu Nicht-Standard-Optionen java -X execute)

Sie können die Nicht-Standard--XshowSettings Flags verwenden, um alle Einstellungen anzuzeigen, oder alternativ -XshowSettings:properties alle Eigenschaftseinstellungen zu zeigen.

So zum Beispiel, wenn Sie den folgenden Befehl ausführen:

java -XshowSettings:properties -version 

Dieses Sie alle Eigenschaften zeigen, von denen java.vendor ist. Ich bin mir nicht sicher, ob es möglich ist, dass es nur eine einzige Eigenschaft ausgibt.

+2

Der folgende Fehler tritt auf: Nicht erkannte Option: -XshowSettings: properties Die Java Virtual Machine konnte nicht erstellt werden. –

+0

Ist dieser Befehl für Windows oder Unix? –

+0

Ich laufe normalerweise auf Linux, habe es aber gerade auf einem Windows-Rechner ausprobiert und es funktioniert dort genauso gut. Setups waren: Ubuntu 12: Oracle Java 1.7.0_17. Windows 7: Oracle Java 1.7.0_25. Das Ausführen von 'java -X' gibt Ihnen Details zu nicht standardmäßigen Optionen, wobei' -XshowSettings' aufgelistet ist, zumindest für die Java-Version von Oracle. – DB5

2

Wenn es JDK laufen jvisualvm, offene VisualVM App finden Sie unter „Systemeigenschaften“ Registerkarte

+1

Ich brauche Konsole Art und Weise zu tun. – J33nn

2

Wenn Sie irgendwelche laufenden Java-Anwendung 'jinfo' ist dein Freund:

Usage: 
jinfo [option] <pid> 
    (to connect to running process) 
jinfo [option] <executable <core> 
    (to connect to a core file) 
jinfo [option] [[email protected]]<remote server IP or hostname> 
    (to connect to remote debug server) 

where <option> is one of: 
-flag <name>   to print the value of the named VM flag 
-flag [+|-]<name> to enable or disable the named VM flag 
-flag <name>=<value> to set the named VM flag to the given value 
-flags    to print VM flags 
-sysprops   to print Java system properties 
<no option>   to print both of the above 
-h | -help   to print this help message 

So

jinfo -sysprops <pid of javaprocess> | grep "java.vendor = " 

gibt Ihnen die Systemeigenschaft.

Beware:

Beachten Sie auch, dass der Wert der Systemeigenschaften überschrieben werden können! Zum Beispiel, wenn myProperties.txt die folgende Zeile enthält, wird die java.vendor Systemeigenschaft überschrieben werden:

java.vendor = Acme Software Company

+0

TBH keine Chance, dass diese Eigenschaft in meinem Fall geändert wird :) – J33nn

0

wenn es Tomcat ist goto: TOMCAT_HOME/bin/

und dann die Datei version.sh (* zB ./version.sh) ausführen.