如何配置Java的代理设置?

5
我会尝试打开一个URL并逐行读取网站内容。在Eclipse中这很容易实现,因为我猜测Eclipse已经自动配置好了。但是当我尝试从命令行运行程序时,程序一直卡住,无法读取URL。
经过一些研究,我发现问题与代理设置有关。所有相关文章都建议更改类似下面的设置:
System.setProperty("java.net.useSystemProxies","true");

或者像这样添加代码行:
System.setProperty("http.proxyHost", "webcache.mydomain.com");
System.setProperty("http.proxyPort", "80");

但我不知道应该在代理设置中填写什么,也不知道这些System.setProperty调用都是做什么的。有没有人知道如何设置代理设置?我只是想在本地计算机上的localhost上运行这个程序,我甚至不需要使用代理或其他任何东西。

以下是我在Eclipse中使用的代码,它可以正常工作。

URL link = new URL("http://www.yahoo.com");
            
BufferedReader in = new BufferedReader(new InputStreamReader(link.openStream()));
//InputStream in = link.openStream();
String inputLine = "";
int count = 0;
while ((inputLine = in.readLine()) != null) {
    site = site + "\n" + inputLine;
}
in.close();

1
你确定你的应用程序没有被操作系统的代理阻止吗?特别是如果你正在使用XP操作系统。 - VirtualTroll
+1 给防火墙或杀毒软件问题。如果你的网络没有代理,就不需要设置代理。 - user800014
添加日志以查看程序卡在哪里。 - cdeszaq
抱歉,我误解了问题。已删除我的答案。 - pablosaraiva
尝试关闭Windows防火墙以查看是否有所帮助。如果是这样,那么您需要将您的程序添加为防火墙的例外。 - Usman Saleem
显示剩余3条评论
2个回答

1

java -Dhttp.proxyHost=代理主机URL
-Dhttp.proxyPort=代理端口号
-Dhttp.proxyUser=用户名
-Dhttp.proxyPassword=密码 java运行的类


0

太阳(嗯,Oracle){{link1:Java SE 6 Java Networking and Proxies}}页面涵盖了这些属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接