-/*\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();
+ }
+
+}