这两条命令并没有给 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,让客户端使用系统属性。代理认证需要其自身受支持的接口。

相关文章