2013-06-06 2 views
0

Java 코드에서 브라우저를 열어야합니다. 다음과 같이이 작업을 수행 할 수 있음을 이해합니다.프록시 설정이 Java에서 설정된 공개 브라우저

java.awt.Desktop.getDesktop().browse(java.net.URI.create("http://google.com")); 

그러나 특정 프록시 설정을 사용하려면 브라우저가 필요합니다. 나는 때라도 코드를 사용하여 시도 (. 브라우저가 열릴 때 즉은, 자사의 프록시 설정이 특정 값으로 설정해야합니다)하지만 작업 나던 :

public static void main(String asf[]){ 
    System.setProperty("java.net.useSystemProxies", "true"); 
    System.setProperty("http.proxyHost", "127.0.0.1"); 
    System.setProperty("http.proxyPort", "8080"); 
    try { 
     java.awt.Desktop.getDesktop().browse(java.net.URI.create("http://google.com")); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    System.out.println("done"); 
} 

명령 줄에서 프록시를 설정

java -Dhttp.proxyHost=webcache.example.com -Dhttp.proxyPort=8080 

를 사용하여 나를위한 옵션이 아닙니다. 어떻게해야합니까?

+0

Google 크롬, IE는 시스템 설정을 사용하지만 Firefox와 같은 브라우저는 자체 설정을 가지고 있기 때문에 시스템 속성을 설정하면 충분할 수 있습니다. 따라서 어떤 시스템 브라우저가 열려 있는지 감지하고 변경할 방법을 찾는 코드를 작성해야 할 수 있습니다 그 브라우저 속성들 – AurA

+0

난 그냥 시스템 설정 자체를 사용하는 브라우저에서 작동하도록 만들어야한다. (내 경우에는 크롬처럼). – Rishabh

답변

0

Google Chromes 프록시 스위치가 유용 할 수 있습니다. h 오히려. --proxy-server = 127.0.0.1 : 8080 스위치가 포함 된 크롬 브라우저에 대한 바로 가기를 만들 수 있습니다. 이제이 바로 가기는 Runtime 클래스의 exec 메소드를 사용하여 자바 코드에서 열 수 있습니다. exec에 대한 인수는 "cmd/c start/d \"d : \ "chrome.lnk"입니다. 여기서 d :는 내 바로 가기의 경로입니다. 이 기술에 대한 자세한 설명은 여기를 참조하십시오. http://sleepingthreads.blogspot.in/2013/07/open-browser-with-proxy-settings-set.html

Google은 스위치 사용을 권장하지 않는다는 점에 유의하십시오. 따라서 이것을 임시 솔루션으로 만 사용하십시오.

0

프록시 설정과 관련된 코드가 대부분 정확하지만 작동하지 않는 경우 프록시 코드를 통해 프록시를 설정하는 또 다른 방법이 있습니다.

SocketAddress addr = new InetSocketAddress("socks.example.com", 1080); 
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); 
Socket socket = new Socket(proxy); 
InetSocketAddress dest = new InetSocketAddress("server.example.org", 1234); 
socket.connect(dest); 

여기서 소켓은 지정된 SOCKS 프록시를 통해 대상 주소 (server.example.org:1234)에 연결하려고합니다.

자세한 내용 당신은 브라우저를 여는 Standard Java Documentation for Proxies

귀하의 솔루션을 통해 갈 수있는이 솔루션에 추가됩니다 체크

if(Desktop.isDesktopSupported()) 
{ 
    Desktop.getDesktop().browse(new URI("http://www.google.com")); 
} 

을 추가하여 개선 될 수있다 .... 대체 방법이라고 할 수 있습니다.

try { 
    Process p=Runtime.getRuntime().exec("cmd /c start http://www.google.com"); 
} 
catch(IOException e1) { 
    System.out.println(e1); 
} 
+0

열리는 브라우저는 코드를 통해 설정된 프록시를 사용해야합니다. 위 코드는 소켓이 프록시를 사용하게하지만 열리는 브라우저는 여전히 이전 설정을 사용합니다. – Rishabh

+0

예 맞습니다 ... – AurA

관련 문제