MENU

Java システムプロパティを見やすく出力

目次

Java システムプロパティをアルファベット順に出力 System.getProperties()

Javaシステムプロパティのキーと値をアルファベット順に見やすく出力するサンプルプログラムを紹介します。
一旦、TreeMapに格納する事により、アルファベット順に並び替えてから出力しています。

通常は以下の方法が良く紹介されていますが、値は途中で途切れていますし、アルファベット順に並んでいないため非常に見づらいですね。

Properties props = System.getProperties();
props.list(System.out);
-- listing properties --
java.runtime.name=Java(TM) 2 Runtime Environment, Stand...
sun.boot.library.path=C:\develop\Java\jdk1.5.0_08\jre\bin
java.vm.version=1.5.0_08-b03
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=JP
sun.os.patch.level=Service Pack 2
java.vm.specification.name=Java Virtual Machine Specification
user.dir=C:\apps\0-app
java.runtime.version=1.5.0_08-b03
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\develop\Java\jdk1.5.0_08\jre\lib\e...
os.arch=x86
java.io.tmpdir=C:\DOCUME~1\***\LOCALS~1\Temp\
line.separator=

java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows XP
sun.jnu.encoding=MS932
java.library.path=C:\develop\Java\jdk1.5.0_08\bin;.;C:\...
java.specification.name=Java Platform API Specification
java.class.version=49.0
sun.management.compiler=HotSpot Client Compiler
os.version=5.1
user.home=C:\Documents and Settings\****
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=MS932
java.specification.version=1.5
user.name=****
java.class.path=C:\apps\0-app\bin;C:\apps\0-app\jre1....
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:\develop\Java\jdk1.5.0_08\jre
java.specification.vendor=Sun Microsystems Inc.
user.language=ja
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.5.0_08
java.ext.dirs=C:\develop\Java\jdk1.5.0_08\jre\lib\ext
sun.boot.class.path=C:\develop\Java\jdk1.5.0_08\jre\lib\r...
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...


サンプルプログラム

/**
 * システムプロパティのキーと値をアルファベット順に出力します。
 */
public static void outputSystemProperties() {
    Properties p = System.getProperties();
    TreeMap map = new TreeMap();
    map.putAll(p);
    Iterator itr = map.keySet().iterator();
    while (itr.hasNext()) {
        String key = (String)itr.next();
        String value = (String)map.get(key);
        System.out.println(key + "=" + value);
    }
}

実行結果

◆実行例

public static void main(String[] args) {
    outputSystemProperties();
}

◆出力結果

awt.toolkit=sun.awt.windows.WToolkit
file.encoding=MS932
file.encoding.pkg=sun.io
file.separator=\
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.awt.printerjob=sun.awt.windows.WPrinterJob
java.class.path=C:\apps\0-app\bin;C:\apps\0-app\jre1.6.0\lib\rt.jar;C:\apps\0-app\sys\lib\bcprov-jdk14-123.jar
java.class.version=49.0
java.endorsed.dirs=C:\develop\Java\jdk1.5.0_08\jre\lib\endorsed
java.ext.dirs=C:\develop\Java\jdk1.5.0_08\jre\lib\ext
java.home=C:\develop\Java\jdk1.5.0_08\jre
java.io.tmpdir=C:\DOCUME~1\***\LOCALS~1\Temp\
java.library.path=C:\develop\Java\jdk1.5.0_08\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\develop\Java\jdk1.5.0_08\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ProgramFilesDevelop\TOOLS\ant-1.6.1\bin;C:\develop\eclipse32\extensions\tptp-4.2.0\agent-controller\\bin;C:\Program Files\QuickTime\QTSystem\
java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition
java.runtime.version=1.5.0_08-b03
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.5
java.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
java.version=1.5.0_08
java.vm.info=mixed mode, sharing
java.vm.name=Java HotSpot(TM) Client VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Sun Microsystems Inc.
java.vm.version=1.5.0_08-b03
line.separator=

os.arch=x86
os.name=Windows XP
os.version=5.1
path.separator=;
sun.arch.data.model=32
sun.boot.class.path=C:\develop\Java\jdk1.5.0_08\jre\lib\rt.jar;C:\develop\Java\jdk1.5.0_08\jre\lib\i18n.jar;C:\develop\Java\jdk1.5.0_08\jre\lib\sunrsasign.jar;C:\develop\Java\jdk1.5.0_08\jre\lib\jsse.jar;C:\develop\Java\jdk1.5.0_08\jre\lib\jce.jar;C:\develop\Java\jdk1.5.0_08\jre\lib\charsets.jar;C:\develop\Java\jdk1.5.0_08\jre\classes
sun.boot.library.path=C:\develop\Java\jdk1.5.0_08\jre\bin
sun.cpu.endian=little
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
sun.desktop=windows
sun.io.unicode.encoding=UnicodeLittle
sun.jnu.encoding=MS932
sun.management.compiler=HotSpot Client Compiler
sun.os.patch.level=Service Pack 2
user.country=JP
user.dir=C:\apps\0-app
user.home=C:\Documents and Settings\***
user.language=ja
user.name=***
user.timezone=
user.variant=

全ての情報がアルファベット順に表示されていますね。
特にjava.class.pathやjava.library.path等は全て表示されていないと、問題解決に時間がかかりますからね。

java.class.path=C:\apps\0-app\bin;C:\apps\0-app\jre1….
        ↓
java.class.path=C:\apps\0-app\bin;C:\apps\0-app\jre1.6.0\lib\rt.jar;C:\apps\0-app\sys\lib\bcprov-jdk14-123.jar

まとめ

この記事では、Javaのシステムプロパティをアルファベット順に整理して見やすく出力する方法について説明しています。通常のプロパティ出力方法では、情報が途中で途切れたり順不同で表示されるため見づらいですが、TreeMapを利用してプロパティをソートし出力することで、より分かりやすくなります。具体的なサンプルプログラムが紹介されており、Javaプログラマーがシステムプロパティを効率よく確認できる方法を提供しています。

Javaプログラマーとしてのスキルを持つ方には、副業案件が非常にお勧めです。なぜなら、Javaは企業の基幹システムやWebアプリケーションの開発に広く使用されており、需要が高いためです。副業としてJavaを活かすことで、収入を増やすだけでなく、スキルアップや新しい技術の習得も可能です。

  • URLをコピーしました!
目次