【问题标题】:How do I configure proxy settings for Java in Solaris to handle Proxy Auto Config (PAC) scripts?如何在 Solaris 中为 Java 配置代理设置以处理代理自动配置 (PAC) 脚本?
【发布时间】:2009-09-30 18:46:31
【问题描述】:

我想在 Solaris 上配置 Java 代理设置以使用代理自动配置 (PAC) 脚本。

I have found instructions for making the settings on a Windows machine using the Java control panel,但我无法找到在 Solaris Java 安装中在何处/如何进行相同设置更改。

我想使用代理自动配置 (PAC) 脚本,而不是手动设置每个连接的代理信息或使用单个代理。我需要为不同类型的 URL 使用多个代理。

【问题讨论】:

    标签: java proxy solaris


    【解决方案1】:

    您提供的文章是关于可以通过 Java 插件控制面板配置的 Java 插件(即浏览器的 Java 运行时环境) > 适用于:

    平台:所有平台

    所以,它确实不是特定于 Windows 的。

    现在,如果您的问题是“如何在 Solaris 上启动 Java 插件控制面板”,答案是:

    您可以通过启动 ControlPanel 可执行文件来运行控制面板。在 Java 2 SDK 中,此文件位于

    <SDK installation directory>/jre/bin/ControlPanel
    

    例如,如果您的 Java 2 SDK 安装在 /usr/j2se,请使用以下命令启动控制面板:

    /usr/j2se/jre/bin/ControlPanel 
    

    但通常人们不使用 Solaris 进行冲浪,所以我不确定这是否是您正在寻找的(实际上,我并不清楚您想要做什么)。

    如果您打算以编程方式连接,请注意 Java 使用两个系统属性来指定代理:http.proxyHost 和 http.proxyPort。对于小程序,它们会自动设置为使用浏览器的设置。但是,在应用程序中,您需要自己设置它们:

    Properties props = System.getProperties();
    props.put("http.proxyHost", "proxyhostname");
    props.put("http.proxyPort", "proxyhostport");
    

    根据评论,我的理解是您想使用 PAC 文件。要在 Java 代码和/或 Ant 中使用 Java 1.5+ 的代理自动配置,您可以在“操作系统级别”配置代理并将系统属性 java.net.useSystemProxies 设置为 true(参见 4 部分) Java Networking and Proxies 的 ProxySelector 或 Ant 的 -autoproxy 选项。这将使 Java 代码和/或 Ant 使用操作系统代理。

    要设置您的 Solaris 主机,如果您使用的是 Gnome 2.X,您可以通过用户界面(系统 > 首选项 > 网络代理)全局配置代理。如果您不使用 Gnome,请设置以下环境变量:

    export http_proxy=http://username:password@proxy_url
    

    要指定非代理主机列表(如有必要),请设置此变量(这是一个示例):

    export no_proxy=localhost,127.0.0.0/8,*.local
    

    【讨论】:

    • 我正在寻找一种将选择适当代理的逻辑委托给现有代理脚本的方法,这样我就不必在代码中复制和维护逻辑。我将在带有 -autoproxy 开关的 Solaris 服务器和/或 ANT 上运行一些 JEE 代码,以通过不同的代理获取 HTTP 资源。我还没有机会测试它,但怀疑 ControlPanel 设置会起作用。
    • 我认为您需要配置您的 Solaris 主机(而不是 Java 插件)以全局使用您的代理 PAC 文件。然后,在您的 Java 代码中设置 java.net.useSystemProxies 系统属性(对于 Ant,这就是 -autoproxy 选项的作用)。这告诉 JVM 使用系统代理设置。参见第 4 节)java.sun.com/javase/6/docs/technotes/guides/net/proxies.html 的 ProxySelector
    • 因此,您似乎是正确的,控制面板的设置似乎不会影响正常的 JRE HTTP 操作,即使在启动时使用 -Djava.net.useSystemProxies=true 也是如此。我不知道如何配置 Solaris 以使用自动代理 PAC 文件/URL。谷歌没有出现任何东西。也许这应该是一个单独的 SO 问题,或者可能是 ServerFault 的问题......
    • 我添加了一些使用 PAC 文件的细节。
    • 如果您无法将 -autoproxy 选项添加到 Ant(例如您在 Eclipse 中),您也可以使用 &lt;setproxy&gt; task of Ant。
    【解决方案2】:

    可悲的是系统代理选择器does not handle PAC/WPAD/JS specifications,我在 Windows 或 MacOS X 上的测试证实了这一点。即使在包含 JavaScript 解释器的 Java6 上也是如此。

    我希望 proxy-vole http://code.google.com/p/proxy-vole/ 可以解决问题。

    【讨论】:

    • 有趣。让我知道这是否可行。我的“解决方案”是在自定义代理选择器 java 类中重新创建 JS 中的逻辑,但我只想指向 JS 文件并让它像浏览器一样工作。
    猜你喜欢
    • 2015-09-17
    • 2018-07-01
    • 2015-06-23
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多