[b]原创文章,转载请注明出处:http://passerbyy.iteye.com/blog/1285664 作者:passer_by[/b]
因为本文的操作,都是关于修改注册表的,所以希望能够谨慎操作。
方法有两种:
[b](一)通过自动生成注册表文件,再调用reg.exe命令[/b]
在说明本文之前,首先说明有比较简单的方法,java程序自动生成注册表文件*.reg,格式为:
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"="localhost:8080"
"ProxyOverride"="<localhost>"
然后调用,Runtime.getRuntime().exec( "reg.exe import " + filename);
[b](二)通过调用registry的api修改[/b]
既然目前已经有现成的修改注册表的包jni的registry包,那我们就不费这个事做上面的操作了,registry jar包下载地址 http://www.trustice.com/java/jnireg/index.shtml ,另外发现openorg上也有类似的,但是类名改掉了,感兴趣的同学可以去搜搜。
IE代理服务器对应于注册表中字段:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings下面的值:ProxyServer,ProxyEnable,ProxyOverride
ProxyEnable用来表示是否使用代理,用0,1表示,类型为REG_DWORD,不能为REG_SZ
ProxyServer用来表示代理服务器ip:port,如localhost:8080,类型为REG_SZ
ProxyOverride表示跳过代理的配置,比如跳过本地代理,该值为<local>
修改注册表类Register,以前也有类似的,但是没有区分REG_DWORD和REG_SZ两种类型
因为本文的操作,都是关于修改注册表的,所以希望能够谨慎操作。
方法有两种:
[b](一)通过自动生成注册表文件,再调用reg.exe命令[/b]
在说明本文之前,首先说明有比较简单的方法,java程序自动生成注册表文件*.reg,格式为:
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"="localhost:8080"
"ProxyOverride"="<localhost>"
然后调用,Runtime.getRuntime().exec( "reg.exe import " + filename);
[b](二)通过调用registry的api修改[/b]
既然目前已经有现成的修改注册表的包jni的registry包,那我们就不费这个事做上面的操作了,registry jar包下载地址 http://www.trustice.com/java/jnireg/index.shtml ,另外发现openorg上也有类似的,但是类名改掉了,感兴趣的同学可以去搜搜。
IE代理服务器对应于注册表中字段:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings下面的值:ProxyServer,ProxyEnable,ProxyOverride
ProxyEnable用来表示是否使用代理,用0,1表示,类型为REG_DWORD,不能为REG_SZ
ProxyServer用来表示代理服务器ip:port,如localhost:8080,类型为REG_SZ
ProxyOverride表示跳过代理的配置,比如跳过本地代理,该值为<local>
修改注册表类Register,以前也有类似的,但是没有区分REG_DWORD和REG_SZ两种类型
import com.ice.jni.registry.NoSuchKeyException;
import com.ice.jni.registry.RegDWordValue;
import com.ice.jni.registry.RegStringValue;
import com.ice.jni.registry.Registry;
import com.ice.jni.registry.RegistryException;
import com.ice.jni.registry.RegistryKey;
public class Register {
// 把ICE_JNIRegistry.dll在的路径加载到java.library.path中,这里是放在classpath下面了
static {
System.setProperty("java.library.path",
Register.class.getResource("/").getPath());
}