public static void read() throws Exception {
		
		synchronized (SystemProperty.class) {
			if (instance == null) {
				instance = new SystemProperty();
			}
		}
		
		// Map作成
		if (prop != null) {
			prop.clear();
			prop = null;
		}
		
		prop = new HashMap<String, List<String>>();
		
		// ドキュメントビルダーファクトリを生成
		DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = dbfactory.newDocumentBuilder();
		
		// 読み込み時のファイル更新時間を取得
		File file = new File( SYSTEM_PROP_PATH );
		lastModified = file.lastModified();
		
		// ドキュメント取得
		Document doc = builder.parse(file);
		
		// ルート要素を取得（タグ名：properties）
		Element root = doc.getDocumentElement();
		
		// properties要素のリストを取得
		NodeList list = root.getElementsByTagName(TAG_PROPERTY);
		
		Element element = null;       // properties要素
		NodeList values = null;       // value要素リスト
		Element valueElement = null;  // value要素
		List<String> valueList = null;// value値リスト
		
		// properties要素の数だけループ
		for (int i = 0; i < list.getLength(); i++) {
			
			// properties要素を取得
			element = (Element) list.item(i);
			
			valueList = new ArrayList<String>();
			
			values = element.getElementsByTagName(TAG_VALUE);
			
			for (int j = 0; j < values.getLength(); j++) {
				valueElement = (Element) values.item(j);
				if (valueElement.getFirstChild() != null) {
					valueList.add(valueElement.getFirstChild().getNodeValue());
				} else {
					valueList.add(null);
				}
			}
			
			prop.put(element.getAttribute(ATTR_ID), valueList);
		}
		
		valueList = null;
	}