【问题标题】:Changing OS proxy settings using java使用 java 更改操作系统代理设置
【发布时间】:2015-08-12 17:45:47
【问题描述】:

我可以使用 java 应用程序在我的 Windows 7 中设置/更改代理设置吗?

我正在尝试使用:

public static void setProxy(String proxyUrl, String proxyPort){
    System.getProperties().put("proxySet", "true");
    System.getProperties().put("http.proxyHost", proxyUrl);
    System.getProperties().put("http.proxyPort", proxyPort);
}

但运行后我的设置并没有改变,而且我的 IP 与以前相同。

【问题讨论】:

    标签: java eclipse windows-7


    【解决方案1】:

    不,这不起作用。这些只是您的应用程序可以使用的属性。更改它们只会在您的应用程序上下文中更改值,而不是计算机。

    您通常可以将Proxy 对象传递给可能需要它的调用,例如post 演示。

    【讨论】:

    • 我已经试过了,但是不符合我对项目的要求。
    【解决方案2】:

    尽管大多数语言不允许(或)不鼓励通过程序更改环境变量,但您可以使用 setenv()ProcessBuilder() 在 java 中使用 JNI 来实现。

    但是你为什么要为你的程序中的每个人都改变一些东西呢?而是更改程序上下文中的变量,例如设置代理服务器,以便它仅对您的程序运行时上下文有效。这就是应用程序的设计和编程方式。

    这是一个例子,从头顶开始。

     public static void main(String[] args) throws Exception
        {
            ProcessBuilder processBuilder = new ProcessBuilder("CMD.exe", "/C", "SET");
            processBuilder.redirectErrorStream(true);
            Map<String,String> environment = processBuilder.environment();
    
            //Set the new envrionment varialbes here
            environment.put("proxySet", "true");
            environment.put("http.proxyHost", proxyUrl);
            environment.put("http.proxyPort", proxyPort);
    
            Process process = processBuilder.start();
            BufferedReader inputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String dataLog=null;
            while ((dataLog = inputReader.readLine()) != null)
            {
                //Just to see what's going on with process
                System.out.println(dataLog);
            }
        }
    

    注意:同样,不鼓励从程序中更改环境变量的做法,而是为您的上下文设置所需的变量。

    【讨论】:

    • 感谢您的回答。我的浏览器(chrome/firefox)需要它。我需要更改系统代理,这会影响我的浏览器。因此,我可以拥有可变 IP(我知道)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    相关资源
    最近更新 更多