在 CentOS 上“配置 Java 代理”通常有两种常见场景,我先分别说明,你按需对号入座:
在启动 Java 程序时加参数:
java \
-Dhttp.proxyHost=proxy.example.com \
-Dhttp.proxyPort=8080 \
-Dhttps.proxyHost=proxy.example.com \
-Dhttps.proxyPort=8080 \
-jar yourapp.jar
如果是 需要认证 的代理:
-Dhttp.proxyUser=username \
-Dhttp.proxyPassword=password
⚠️ 明文密码不安全,生产环境建议用代码或配置文件处理。
-Dhttp.nonProxyHosts="localhost|127.0.0.1|*.example.com"
export JAVA_OPTS="-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080"
或在 ~/.bashrc 中写入后:
source ~/.bashrc
vim /etc/profile
添加:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
export no_proxy=localhost,127.0.0.1
生效:
source /etc/profile
✅ Java 的 URLConnection 默认会读取这些变量(部分库如 Apache HttpClient 不一定)。
System.setProperty("http.proxyHost", "proxy.example.com");
System.setProperty("http.proxyPort", "8080");
或:
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("proxy.example.com", 8080));
URLConnection conn = url.openConnection(proxy);
curl -x http://proxy.example.com:8080 https://www.google.com
或 Java 程序打印:
System.out.println(System.getProperty("http.proxyHost"));
❓ CentOS 7 / 8 有区别吗?
没有,Java 代理配置与系统版本无关。
❓ Docker 中的 Java 怎么配?
在 Dockerfile 或 docker run -e 中设置 JVM 参数。
如果你能说明:
我可以直接给你一份可复制的配置。