Java System Properties
After understand that Java does not honour TMPDIR, I really want to know what are the default system properties in Java. Hence, I wrote my 2nd Java program to list out the default values of all the system properties.
$ cat b.java
import java.io.*;
public class b {
public static void main(String[] args) {
String value;
String keys[]={
"java.version",
"java.vendor",
"java.vendor.url",
"java.home",
"java.vm.specification.version",
"java.vm.specification.vendor",
"java.vm.specification.name",
"java.vm.version",
"java.vm.vendor",
"java.vm.name",
"java.specification.version",
"java.specification.vendor",
"java.specification.name",
"java.class.version",
"java.class.path",
"java.library.path",
"java.io.tmpdir",
"java.compiler",
"java.ext.dirs",
"os.name",
"os.arch",
"os.version",
"file.separator",
"path.separator",
"line.separator",
"user.name",
"user.home",
"user.dir",
};
for (String key: keys) {
value=System.getProperty(key);
System.out.println(key + "=" + value);
}
}
}
$ java b
java.version=1.5.0_07
java.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
java.home=/usr/jdk/instances/jdk1.5.0/jre
java.vm.specification.version=1.0
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.name=Java Virtual Machine Specification
java.vm.version=1.5.0_07-b03
java.vm.vendor=Sun Microsystems Inc.
java.vm.name=Java HotSpot(TM) Client VM
java.specification.version=1.5
java.specification.vendor=Sun Microsystems Inc.
java.specification.name=Java Platform API Specification
java.class.version=49.0
java.class.path=.
java.library.path=/usr/jdk/instances/jdk1.5.0/jre/lib/sparc/client:/usr/jdk/instances/jdk1.5.0/jre/lib/sparc:/usr/jdk/instances/jdk1.5.0/jre/../lib/sparc:/lib:/usr/lib:/usr/sfw/lib:/usr/dt/lib:/usr/X11R6/lib:/usr/lib
java.io.tmpdir=/var/tmp/
java.compiler=null
java.ext.dirs=/usr/jdk/instances/jdk1.5.0/jre/lib/ext
os.name=SunOS
os.arch=sparc
os.version=5.10
file.separator=/
path.separator=:
line.separator=
user.name=chihung
user.home=/export/home/chihung
user.dir=/export/home/chihung
If you were to run java as a server, the default library path changes accordingly. If you look one of the library paths, you will see "java -client" (default) and "java -server" load in different libjvm.so sharable object. Does anyone know exactly the difference between the 2 libjvm.so, apart from the way they define the young and old generations.
$ uname -a SunOS chihung 5.10 Generic_118833-36 sun4u sparc SUNW,UltraSPARC-IIi-cEngine $ java -server b > b.server $ java -d64 -server b > b.server.d64 $ java -client b > b.client $ diff b.server b.client 10c10 < java.vm.name=Java HotSpot(TM) Server VM --- > java.vm.name=Java HotSpot(TM) Client VM 16c16 < java.library.path=/usr/jdk/instances/jdk1.5.0/jre/lib/sparc/server:/usr/jdk/instances/jdk1.5.0/jre/lib/sparc:/usr/jdk/instances/jdk1.5.0/jre/../lib/sparc:/lib:/usr/lib:/usr/sfw/lib:/usr/dt/lib:/usr/X11R6/lib:/usr/lib --- > java.library.path=/usr/jdk/instances/jdk1.5.0/jre/lib/sparc/client:/usr/jdk/instances/jdk1.5.0/jre/lib/sparc:/usr/jdk/instances/jdk1.5.0/jre/../lib/sparc:/lib:/usr/lib:/usr/sfw/lib:/usr/dt/lib:/usr/X11R6/lib:/usr/lib $ diff b.server b.server.d64 10c10 < java.vm.name=Java HotSpot(TM) Server VM --- > java.vm.name=Java HotSpot(TM) 64-Bit Server VM 16c16 < java.library.path=/usr/jdk/instances/jdk1.5.0/jre/lib/sparc/server:/usr/jdk/instances/jdk1.5.0/jre/lib/sparc:/usr/jdk/instances/jdk1.5.0/jre/../lib/sparc:/lib:/usr/lib:/usr/sfw/lib:/usr/dt/lib:/usr/X11R6/lib:/usr/lib --- > java.library.path=/usr/jdk/instances/jdk1.5.0/jre/lib/sparcv9/server:/usr/jdk/instances/jdk1.5.0/jre/lib/sparcv9:/usr/jdk/instances/jdk1.5.0/jre/../lib/sparcv9:/lib:/usr/lib:/usr/sfw/lib:/usr/dt/lib:/usr/X11R6/lib:/usr/lib 21c21 < os.arch=sparc --- > os.arch=sparcv9 $ cd /usr/jdk/instances/jdk1.5.0/jre/lib/sparc $ ls -l client server client: total 36778 drwxr-xr-x 2 root bin 512 Mar 21 10:20 64 -rw-r--r-- 1 root bin 1423 May 3 2006 Xusage.txt -r--r--r-- 1 root other 11886592 Mar 21 10:21 classes.jsa lrwxrwxrwx 1 root root 13 Mar 21 10:20 libjsig.so -> ../libjsig.so -rwxr-xr-x 1 root bin 6879100 May 3 2006 libjvm.so -rwxr-xr-x 1 root bin 41072 May 3 2006 libjvm_db.so server: total 19898 drwxr-xr-x 2 root bin 512 Mar 21 10:20 64 -rw-r--r-- 1 root bin 1423 May 3 2006 Xusage.txt lrwxrwxrwx 1 root root 13 Mar 21 10:20 libjsig.so -> ../libjsig.so -rwxr-xr-x 1 root bin 10127532 May 3 2006 libjvm.so -rwxr-xr-x 1 root bin 41072 May 3 2006 libjvm_db.so

1 Comments:
If you have the helpful tool by the name of ant from the Apache Projects,
executing "ant -diagnostics" will have provided you with the details.
Or
import java.util.*;
public class ListProperties {
public static void main(String[] args) {
Properties p = System.getProperties();
for (Enumeration en = p.keys(); en.hasMoreElements();){
String key = en.nextElement().toString();
System.out.println(key+"::"+p.getProperty(key));
}
}
}
Post a Comment
<< Home