jaav读取注册表

来源:互联网 发布:淘宝网数据包怎么下载 编辑:程序博客网 时间:2024/06/18 08:14
读取的注册表类型仅限于:REG_SZ
private static final String REGQUERY_UTIL = "reg query ";    private static final String REGSTR_TOKEN = "REG_SZ";    private static final String REGDWORD_TOKEN = "REG_DWORD";     //java注册表地址    private static final String REGEDIT_FOLDER_CMD = REGQUERY_UTIL            + "\"HKLM\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6.0_27"            + "\" /v JavaHome";    //Tomcat注册表地址    private static final String REGEDIT_TOMCAT_CMD=REGQUERY_UTIL    +"\"HKLM\\SOFTWARE\\Apache Software Foundation\\Tomcat\\6.0\\Tomcat6"    +"\" /v InstallPath";    /**     * 读取注册表 获得java tomcat所对应该的安装目录     * @param regeditPath 注册表地址     * @return     */    public static String getMyDocumentsFromWinRegistry(String regeditPath) {        try {            Process process = Runtime.getRuntime().exec(regeditPath);            StreamReader streamreader = new StreamReader(process.getInputStream());             streamreader.start();            process.waitFor();            streamreader.join();            String result = streamreader.getResult();            int p = result.indexOf(REGSTR_TOKEN);            if (p == -1)                return null;            return result.substring(p + REGSTR_TOKEN.length()).trim();        } catch (Exception e) {            return null;        }    }    /**     * 内部类     * 解决中文乱码问题     */    static class StreamReader extends Thread {        private InputStream is;        private StringWriter sw;         StreamReader(InputStream is) {            this.is = is;            sw = new StringWriter();        }        @Override        public void run() {            try {            ByteArrayOutputStream bos = new ByteArrayOutputStream();                int c = -1;                while ((c = is.read()) != -1){                bos.write(c);                }                                sw.write(new String(bos.toString("GBK").getBytes("UTF-8")));            } catch (IOException e) {            e.printStackTrace();            }        }        String getResult() {            return sw.toString();        }    }
原创粉丝点击