我想要做的是阅读Windows环境变量%APPDATA%。我对变形金刚有一些严重的问题,例如如果APDATA设置为"ÄÄÄ"
,我会得到"'''"
。
这是我的代码:
final Process p = Runtime.getRuntime().exec("cmd.exe /C echo %APPDATA%");
final BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String buffer;
if((buffer = br.readLine()) != null) {
return buffer;
}
如果我打印出来
String encoding_system = System.getProperty("file.encoding");
我得到了Cp1252
。我试图告诉InputStreamReader系统编码,但没有任何改变。
答案 0 :(得分:1)
这是尝试获取环境变量值的一种脆弱方式。你最好使用System.getEnv()
。这将返回一个Map<String, String>
实例,将环境变量名称链接到它们的值。