0

首先,我想提一下,当2.2仍然是 beta 时,我也遇到了这个问题(迫使我恢复到2.1.1)。

今天安装了JavaSE 7u6 (与JavaFX 2.2 stable捆绑在一起)。NetBeans能够自动检测Default JavaFX Platform.

创建了一个新JavaFX Application项目(也尝试了FXML衍生产品,结果相同)。试过这段代码:

package javafxapplication;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import javafx.application.Application;
import javafx.stage.Stage;



public class JavaFXApplication extends Application 
{

    public static void main(String[] args) 
    {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) 
    {
        System.setProperty("socksProxyHost", "127.0.0.1");
        System.setProperty("socksProxyPort", "9050");

        try
        {
            URLConnection conn = new URL("http://www.wikipedia.org").openConnection();
            BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            String line;

            while ((line = br.readLine()) != null)
            {
                System.out.println(line);
            }
        }
        catch (Exception e) { e.printStackTrace(); }

        System.exit(0);
    }
}

它有效。不会因为错误的 socks 代理设置而导致无法建立连接的错误(我的机器上的该端口上没有运行任何东西)。这些属性被默默地忽略,连接直接发生。这是一个错误吗?我已经在 2 台运行Win7 x64的机器上对此进行了测试。不会发生在2.1.1

4

1 回答 1

1

JavaFX 2.2 引入了对系统代理的支持(参见http://javafx-jira.kenai.com/browse/RT-21705)。

它可能会干扰 socks 代理设置。您可以尝试删除系统代理或尝试在 JVM 选项旁边添加:-Djavafx.autoproxy.disable=true

于 2012-08-23T15:11:49.303 回答