我找到了出问题的地方.写了个简单的测试类.就是这里的问题.大家帮我看看 import java.io.*; import java.util.*; import java.security.*; public class Sample{ public static void main(String[] args){ try{ String command = "env"; String name = "TWSECU_HOME"; Properties env = new Properties(); try { Process process = Runtime.getRuntime().exec(command); env.load(process.getInputStream()); }catch(IOException e) { System.out.println(String.valueOf(String.valueOf((new StringBuffer("get ")).append(name).append(" error")))); } System.out.println("**************#"+(String)env.get(name)); }catch(Exception e){ e.printStackTrace(); }
} } 在UNIX的环境变量里面取路径. 报java.lang.IllegalArgumentException: Malformed \uxxxx encoding. at java.util.Properties.loadConvert(Properties.java(Compiled Code)) at java.util.Properties.load(Properties.java:305) at Sample.main(Sample.java:13)
我想这是由于你的properties的编码方式不对所导致的吧。看看你的properties的编码类型是什么,然后在load的时候进行转码。同时还要注意你的unix的编码环境,如果是中文的话,要set lang=zh_CN的。说白了你要注意以下几个地方: 1。文件自身的编码(UTF-9 or 默认)如果你在中文windows下编的这个文件,并以默认方式存储,文件编码就是gbk的。读的时候要用gbk方式读取。 2。用properties来取的时候的编码(包括你的inputstream流里的编码) 3。unix自身的环境(GBK ro en)一般来将1,2可能性大些。
import java.io.*;
import java.util.*;
import java.security.*;
public class Sample{
public static void main(String[] args){
try{
String command = "env";
String name = "TWSECU_HOME";
Properties env = new Properties();
try
{
Process process = Runtime.getRuntime().exec(command);
env.load(process.getInputStream());
}catch(IOException e)
{
System.out.println(String.valueOf(String.valueOf((new StringBuffer("get ")).append(name).append(" error"))));
}
System.out.println("**************#"+(String)env.get(name));
}catch(Exception e){
e.printStackTrace();
}
}
}
在UNIX的环境变量里面取路径.
报java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
at java.util.Properties.loadConvert(Properties.java(Compiled Code))
at java.util.Properties.load(Properties.java:305)
at Sample.main(Sample.java:13)
1。文件自身的编码(UTF-9 or 默认)如果你在中文windows下编的这个文件,并以默认方式存储,文件编码就是gbk的。读的时候要用gbk方式读取。
2。用properties来取的时候的编码(包括你的inputstream流里的编码)
3。unix自身的环境(GBK ro en)一般来将1,2可能性大些。