把 Java 的代理参数放在主类之前
将代理系统属性传给 Java 启动器,而不是意外地把它们当作应用参数传入。
这两条命令并没有给 Java 启动器相同的配置。请使用你的 HTTP 代理的主机和端口;HTTP 代理列表提供了可用于允许的公共线路的候选:
java -Dhttp.proxyHost=proxy.example.net -Dhttp.proxyPort=8080 -jar app.jar
java -jar app.jar -Dhttp.proxyHost=proxy.example.net -Dhttp.proxyPort=8080
在第一条中,启动器接收到系统属性选项。在第二条中,app.jar 之后的令牌变成了应用参数。除非应用有意解析它们,否则它们不会设置 JVM 的代理属性。
用主类代替 -jar 时也适用同一条边界。把 JVM 选项放在类名之前,把应用专属参数放在之后。
检查 IDE、服务包装器或启动脚本生成的真实启动命令。它标为“program arguments”的字段可能不同于 VM 选项字段。
正确的位置只提供属性。HTTP 客户端仍必须使用该 Java 网络配置。对于 Apache HttpClient 5,让客户端使用系统属性。代理认证需要其自身受支持的接口。