我确实看到了有关为JVM设置代理的问题,但我想问的是人们如何利用已经配置的代理(在Windows上)。
这是我的问题的演示:
- 转到控制面板-> Java并设置代理地址。
- 运行以下简单的小程序代码(我正在使用Eclipse IDE):
import java.awt.Graphics;
import javax.swing.JApplet;
import java.util.*;
public class Stacklet extends JApplet {
private String message;
public void init(){
Properties props = System.getProperties();
message = props.getProperty("http.proxyHost", "NONE");
message = (message.length() == 0)? "NONE": message;
}
public void paint(Graphics g)
{
g.drawString(message, 20, 20);
}
}
无论您在Java控制面板中进行的设置如何,Applet均显示“无”。如果可以确定Windows代理设置(通常在Internet Explorer中设置),那将是最好的选择,但是在Java控制面板中进行额外的配置步骤仍然是可以接受的解决方案。
谢谢!
可以使用ProxySelector
类检测代理,并通过使用System
类的setProperty
方法分配环境变量来分配系统代理:
System.setProperty("java.net.useSystemProxies", "true");
System.out.println("detecting proxies");
List l = null;
try {
l = ProxySelector.getDefault().select(new URI("http://foo/bar"));
}
catch (URISyntaxException e) {
e.printStackTrace();
}
if (l != null) {
for (Iterator iter = l.iterator(); iter.hasNext();) {
java.net.Proxy proxy = (java.net.Proxy) iter.next();
System.out.println("proxy type: " + proxy.type());
InetSocketAddress addr = (InetSocketAddress) proxy.address();
if (addr == null) {
System.out.println("No Proxy");
} else {
System.out.println("proxy hostname: " + addr.getHostName());
System.setProperty("http.proxyHost", addr.getHostName());
System.out.println("proxy port: " + addr.getPort());
System.setProperty("http.proxyPort", Integer.toString(addr.getPort()));
}
}
}
问题内容: 很多时候,Java应用程序需要连接到Internet。最常见的示例是在读取XML文件并需要下载其架构时发生的。 我在代理服务器后面。如何设置我的JVM使用代理? 问题答案: 从Java文档(不是 javadoc API)中: http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html 设置JVM标
我已经下载并提取了Eclipse。我在以下目录中有Eclipse:C:\Applications\Eclipse。当我尝试运行可执行文件时,我收到以下消息: 我目前有以下文件夹: 我是否需要为我的Windows 7操作系统设置一些环境变量来运行Eclipse?如果是,我可以得到一些帮助吗?如果不是,我可以得到一些帮助来运行Eclipse。 编辑 我已更改快捷方式以包含虚拟机的路径,现在收到此错误:
问题内容: 我需要自动检测用户是否需要代理才能访问互联网。Java应用程序是否可以读取系统代理设置? 谢谢,吉米 问题答案: Java SE 1.5提供了ProxySelector类来检测代理设置。如果存在与Internet的直接连接,则代理类型将为DIRECT,否则它将返回主机和端口。 下面的示例说明了此功能:
问题内容: 我试图在Eclipse中更新我的jre版本,我将jre 8添加到了已安装的JRE中,并选中了他。当我单击确定时,它给我一个错误: 它仅在我尝试使用JRE 8时发生。 有人知道如何解决这个问题吗? 我使用Indigo Eclipse。版本:Service Release 2。 问题答案: 创建新的工作区。创建新的Java项目,然后选择jvm8作为jvm。在现有项目中更改虚拟机非常困难,并
问题内容: 可以在调用“ java jar jar_name.jar”时指定要使用的JVM。我的机器上安装了两个JVM。我无法更改JAVA_HOME,因为它可能会破坏所有准备就绪的代码。 亲切的问候 史提芬 问题答案: 是的-仅显式提供java.exe的路径。例如: 对于正在运行的命令外壳,最简单的方法是: 例如,这是一个完整的会话,显示我的默认JVM,然后是路径的更改,然后是新的: 但是,这不会