Java FAQ: How do I print all of the Java system properties?
Background
Many years ago when I was trying to compile all the Tame Swing examples, I had a problem running one of the examples. The problem was that I was running the example in Eclipse, and I was getting an error message showing the Eclipse (the JVM really) couldn't find the icon image files.
I thought I had everything configured properly, but still I kept getting the same error message. Finally I decided to look at my Java system properties and see what my build path really looked like. I couldn't think of the right Java property to show the build path, so instead of trying to print just the one Java property, I decided to print all the Java properties, then dig through them manually.
Solution
You print Java system properties with the System.getProperties()
method.
Here's the code I used to print all the Java system properties:
Properties p = System.getProperties(); Enumeration keys = p.keys(); while (keys.hasMoreElements()) { String key = (String)keys.nextElement(); String value = (String)p.get(key); System.out.println(key + ": " + value); }
And here's the output from that section of code:
java.runtime.name: Java(TM) 2 Runtime Environment, Standard Edition sun.boot.library.path: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries java.vm.version: 1.5.0_07-87 awt.nativeDoubleBuffering: true gopherProxySet: false java.vm.vendor: "Apple Computer, Inc." java.vendor.url: http://apple.com/ path.separator: : java.vm.name: Java HotSpot(TM) Client VM file.encoding.pkg: sun.io user.country: US sun.os.patch.level: unknown java.vm.specification.name: Java Virtual Machine Specification user.dir: /Users/al/DD/Projects/TameSwing java.runtime.version: 1.5.0_07-164 java.awt.graphicsenv: apple.awt.CGraphicsEnvironment java.endorsed.dirs: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed os.arch: i386 java.io.tmpdir: /tmp line.separator: java.vm.specification.vendor: Sun Microsystems Inc. os.name: Mac OS X sun.jnu.encoding: MacRoman java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java java.specification.name: Java Platform API Specification java.class.version: 49.0 sun.management.compiler: HotSpot Client Compiler os.version: 10.4.10 user.home: /Users/al user.timezone: java.awt.printerjob: apple.awt.CPrinterJob file.encoding: MacRoman java.specification.version: 1.5 java.class.path: /Users/al/DD/Projects/TameSwing/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar user.name: al apple.awt.graphics.UseQuartz: true java.vm.specification.version: 1.0 java.home: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home sun.arch.data.model: 32 user.language: en java.specification.vendor: Sun Microsystems Inc. awt.toolkit: apple.awt.CToolkit java.vm.info: mixed mode, sharing java.version: 1.5.0_07 java.ext.dirs: /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext sun.boot.class.path: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar java.vendor: Apple Computer, Inc. file.separator: / java.vendor.url.bug: http://developer.apple.com/java/ sun.io.unicode.encoding: UnicodeLittle sun.cpu.endian: little mrj.version: 1040.1.5.0_07-164 sun.awt.exception.handler: apple.awt.CToolkit$EventQueueExceptionHandler sun.cpu.isalist:
this post is sponsored by my books: | |||
#1 New Release |
FP Best Seller |
Learn Scala 3 |
Learn FP Fast |
As you can see, this prints a ton of Java system properties, but in my case (given my poor memory) it seemed like the easiest way to solve the problem.