Linux下设置Java代理系统属性时命令执行异常求助
正确设置Java代理系统属性的方法
你遇到的问题核心是:你的命令只添加了代理参数,但没有指定要执行的Java主类或Jar包,所以Java命令默认输出帮助信息。
正确的命令格式
Java命令的参数顺序是固定的:[JVM参数] <主类/ -jar Jar包> [程序参数],代理属性属于JVM参数,必须放在主类或-jar参数之前。
1. 运行普通Java类
java -Dhttp.proxyHost=www-proxy.com -Dhttp.proxyPort=80 com.yourpackage.YourMainClass
注意:http.proxyHost只需要填写代理服务器的主机名或IP,不需要加http://前缀。
2. 运行Jar包
java -Dhttp.proxyHost=www-proxy.com -Dhttp.proxyPort=80 -jar your-application.jar
扩展配置
如果需要更完整的代理设置,可以补充以下参数:
- 同时设置HTTPS代理(大部分场景需要):
java -Dhttp.proxyHost=www-proxy.com -Dhttp.proxyPort=80 \ -Dhttps.proxyHost=www-proxy.com -Dhttps.proxyPort=80 \ com.yourpackage.YourMainClass - 配置不需要走代理的内网地址:
多个地址用java -Dhttp.proxyHost=www-proxy.com -Dhttp.proxyPort=80 \ -Dhttp.nonProxyHosts="localhost|127.0.0.1|*.your-internal-domain.com" \ com.yourpackage.YourMainClass|分隔,支持通配符*。
验证代理是否生效
可以在你的主类中添加以下代码,打印系统属性确认配置是否生效:
public class YourMainClass { public static void main(String[] args) { System.out.println("HTTP Proxy Host: " + System.getProperty("http.proxyHost")); System.out.println("HTTP Proxy Port: " + System.getProperty("http.proxyPort")); } }
内容的提问来源于stack exchange,提问作者PeterWegner90
相关产品推荐
相关产品推荐

