OSDN Git Service

Merge branch 'Branch_release-'
[jindolf/Jindolf.git] / src / main / java / jp / sfjp / jindolf / config / EnvInfo.java
-/*\r
- * environment information\r
- *\r
- * Copyright(c) 2009 olyutorskii\r
- * $Id: EnvInfo.java 953 2009-12-06 16:42:14Z olyutorskii $\r
- */\r
-\r
-package jp.sourceforge.jindolf;\r
-\r
-import java.io.File;\r
-import java.text.NumberFormat;\r
-import java.util.Set;\r
-import java.util.SortedMap;\r
-import java.util.TreeMap;\r
-\r
-/**\r
- * 実行環境に関する各種情報。\r
- */\r
-public final class EnvInfo{\r
-\r
-    /** OS名。 */\r
-    public static final String OS_NAME;\r
-    /** OSバージョン。 */\r
-    public static final String OS_VERSION;\r
-    /** アーキテクチャ種別。 */\r
-    public static final String OS_ARCH;\r
-    /** Java実行系ベンダ。 */\r
-    public static final String JAVA_VENDOR;\r
-    /** Java実行形バージョン。 */\r
-    public static final String JAVA_VERSION;\r
-\r
-    private static final SortedMap<String, String> propertyMap =\r
-            new TreeMap<String, String>();\r
-\r
-    private static final SortedMap<String, String> environmentMap =\r
-            new TreeMap<String, String>();\r
-\r
-    private static final String[] classpaths;\r
-\r
-    static{\r
-        OS_NAME      = getSecureProperty("os.name");\r
-        OS_VERSION   = getSecureProperty("os.version");\r
-        OS_ARCH      = getSecureProperty("os.arch");\r
-        JAVA_VENDOR  = getSecureProperty("java.vendor");\r
-        JAVA_VERSION = getSecureProperty("java.version");\r
-\r
-        getSecureEnvironment("LANG");\r
-        getSecureEnvironment("DISPLAY");\r
-\r
-        String classpath   = getSecureProperty("java.class.path");\r
-        if(classpath != null){\r
-            classpaths = classpath.split(File.pathSeparator);\r
-        }else{\r
-            classpaths = new String[0];\r
-        }\r
-    }\r
-\r
-    /**\r
-     * 可能ならシステムプロパティを読み込む。\r
-     * @param key キー\r
-     * @return プロパティ値。セキュリティ上読み込み禁止の場合はnull。\r
-     */\r
-    private static String getSecureProperty(String key){\r
-        String result;\r
-        try{\r
-            result = System.getProperty(key);\r
-            if(result != null) propertyMap.put(key, result);\r
-        }catch(SecurityException e){\r
-            result = null;\r
-        }\r
-        return result;\r
-    }\r
-\r
-    /**\r
-     * 可能なら環境変数を読み込む。\r
-     * @param name 環境変数名\r
-     * @return 環境変数値。セキュリティ上読み込み禁止の場合はnull。\r
-     */\r
-    private static String getSecureEnvironment(String name){\r
-        String result;\r
-        try{\r
-            result = System.getenv(name);\r
-            if(result != null) environmentMap.put(name, result);\r
-        }catch(SecurityException e){\r
-            result = null;\r
-        }\r
-        return result;\r
-    }\r
-\r
-    /**\r
-     * VM詳細情報を文字列化する。\r
-     * @return VM詳細情報\r
-     */\r
-    public static String getVMInfo(){\r
-        StringBuilder result = new StringBuilder();\r
-        NumberFormat nform = NumberFormat.getNumberInstance();\r
-\r
-        result.append("最大ヒープメモリ量: "\r
-                + nform.format(Jindolf.RUNTIME.maxMemory()) + " bytes\n");\r
-\r
-        result.append("\n");\r
-\r
-        result.append("起動時引数:\n");\r
-        for(String arg : Jindolf.getOptionInfo().getInvokeArgList()){\r
-            result.append("  ").append(arg).append("\n");\r
-        }\r
-\r
-        result.append("\n");\r
-\r
-        result.append("主要システムプロパティ:\n");\r
-        Set<String> propKeys = propertyMap.keySet();\r
-        for(String propKey : propKeys){\r
-            if(propKey.equals("java.class.path")) continue;\r
-            String value = propertyMap.get(propKey);\r
-            result.append("  ");\r
-            result.append(propKey).append("=").append(value).append("\n");\r
-        }\r
-\r
-        result.append("\n");\r
-\r
-        result.append("主要環境変数:\n");\r
-        Set<String> envKeys = environmentMap.keySet();\r
-        for(String envKey : envKeys){\r
-            String value = environmentMap.get(envKey);\r
-            result.append("  ");\r
-            result.append(envKey).append("=").append(value).append("\n");\r
-        }\r
-\r
-        result.append("\n");\r
-\r
-        result.append("クラスパス:\n");\r
-        for(String path : classpaths){\r
-            result.append("  ");\r
-            result.append(path).append("\n");\r
-        }\r
-\r
-        result.append("\n");\r
-\r
-        return result.toString();\r
-    }\r
-\r
-    /**\r
-     * 隠れコンストラクタ。\r
-     */\r
-    private EnvInfo(){\r
-        throw new AssertionError();\r
-    }\r
-\r
-}\r
+/*
+ * environment information
+ *
+ * License : The MIT License
+ * Copyright(c) 2009 olyutorskii
+ */
+
+package jp.sfjp.jindolf.config;
+
+import java.io.File;
+import java.text.NumberFormat;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+/**
+ * 実行環境に関する各種情報。
+ */
+public final class EnvInfo{
+
+    /** OS名。 */
+    public static final String OS_NAME;
+    /** OSバージョン。 */
+    public static final String OS_VERSION;
+    /** アーキテクチャ種別。 */
+    public static final String OS_ARCH;
+    /** Java実行系ベンダ。 */
+    public static final String JAVA_VENDOR;
+    /** Java実行形バージョン。 */
+    public static final String JAVA_VERSION;
+
+    /** 最大ヒープメモリ。 */
+    public static final long MAX_MEMORY;
+
+    private static final SortedMap<String, String> PROPERTY_MAP =
+            new TreeMap<>();
+
+    private static final SortedMap<String, String> ENVIRONMENT_MAP =
+            new TreeMap<>();
+
+    private static final String[] CLASSPATHS;
+
+    static{
+        OS_NAME      = getSecureProperty("os.name");
+        OS_VERSION   = getSecureProperty("os.version");
+        OS_ARCH      = getSecureProperty("os.arch");
+        JAVA_VENDOR  = getSecureProperty("java.vendor");
+        JAVA_VERSION = getSecureProperty("java.version");
+
+        getSecureEnvironment("LANG");
+        getSecureEnvironment("DISPLAY");
+
+        Runtime runtime = Runtime.getRuntime();
+        MAX_MEMORY = runtime.maxMemory();
+
+        String classpath   = getSecureProperty("java.class.path");
+        String[] pathVec;
+        if(classpath != null){
+            pathVec = classpath.split(File.pathSeparator);
+        }else{
+            pathVec = new String[0];
+        }
+        CLASSPATHS = pathVec;
+
+    }
+
+
+    /**
+     * 隠れコンストラクタ。
+     */
+    private EnvInfo(){
+        throw new AssertionError();
+    }
+
+
+    /**
+     * 可能ならシステムプロパティを読み込む。
+     * @param key キー
+     * @return プロパティ値。セキュリティ上読み込み禁止の場合はnull。
+     */
+    private static String getSecureProperty(String key){
+        String result;
+        try{
+            result = System.getProperty(key);
+            if(result != null) PROPERTY_MAP.put(key, result);
+        }catch(SecurityException e){
+            result = null;
+        }
+        return result;
+    }
+
+    /**
+     * 可能なら環境変数を読み込む。
+     * @param name 環境変数名
+     * @return 環境変数値。セキュリティ上読み込み禁止の場合はnull。
+     */
+    private static String getSecureEnvironment(String name){
+        String result;
+        try{
+            result = System.getenv(name);
+            if(result != null) ENVIRONMENT_MAP.put(name, result);
+        }catch(SecurityException e){
+            result = null;
+        }
+        return result;
+    }
+
+    /**
+     * VM詳細情報を文字列化する。
+     * @return VM詳細情報
+     */
+    public static String getVMInfo(){
+        StringBuilder result = new StringBuilder();
+        NumberFormat nform = NumberFormat.getNumberInstance();
+
+        result.append("最大ヒープメモリ量: ")
+              .append(nform.format(MAX_MEMORY))
+              .append(" bytes\n");
+
+        result.append("\n");
+
+        result.append("主要システムプロパティ:\n");
+        Set<String> propKeys = PROPERTY_MAP.keySet();
+        for(String propKey : propKeys){
+            if(propKey.equals("java.class.path")) continue;
+            String value = PROPERTY_MAP.get(propKey);
+            result.append("  ");
+            result.append(propKey).append("=").append(value).append("\n");
+        }
+
+        result.append("\n");
+
+        result.append("主要環境変数:\n");
+        Set<String> envKeys = ENVIRONMENT_MAP.keySet();
+        for(String envKey : envKeys){
+            String value = ENVIRONMENT_MAP.get(envKey);
+            result.append("  ");
+            result.append(envKey).append("=").append(value).append("\n");
+        }
+
+        result.append("\n");
+
+        result.append("クラスパス:\n");
+        for(String path : CLASSPATHS){
+            result.append("  ");
+            result.append(path).append("\n");
+        }
+
+        result.append("\n");
+
+        return result.toString();
+    }
+
+}