4

これらの java.net.ConnectExceptions が発生し続ける理由を理解するのに問題があるようです。Java 7u6 x64 をクリーン インストールして Windows 7 を実行しています。ファイアウォールをオフにしました (それが問題の場合)。ここに投稿されたソリューションに従いました:

java.net.SocketException: 無効な引数: 接続

しかし、これらの問題を取り除くものは何もありません。Microsoft FixIt アプリケーションを使用して IP スタックをリセットしたことさえあります。また、環境変数 JAVA_TOOL_OPTIONS 変数に「-Djava.net.preferIPv4Stack=true」を追加しました。何も機能していません。

これは、Netbeans IDE からの JavaFX "Hello World" プログラムです。(私のMacでは問題ありません。)

どんな助けでも大歓迎です!これを解決するためにどこを見ればよいかわかりません。その結果、すべての JavaFX プログラムの実行に時間がかかります。アプリケーションを先に進める前に、すべてソケット接続のタイムアウトを待っているようです。これは Java プログラムでは発生せず、JavaFX のみです。

コードは次のとおりです。

package anotherjavafxtest;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

/**
 *
 * @author redacted
 */
public class AnotherJavaFXTest extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>()
        {
            @Override
            public void handle(ActionEvent event)
            {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * The main() method is ignored in correctly deployed JavaFX application. main() serves only as fallback in case the application can not be launched through deployment
     * artifacts, e.g., in IDEs with limited FX support. NetBeans ignores main().
     *
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }
}

そして、ここに例外リストがあります:

java.net.ConnectException: Connection refused: connect
    at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:378)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:473)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:203)
    at sun.net.www.http.HttpClient.New(HttpClient.java:290)
    at sun.net.www.http.HttpClient.New(HttpClient.java:306)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:995)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:974)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:849)
    at sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:2380)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1546)
    at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.getJSFileFromURL(Unknown Source)
    at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.init(Unknown Source)
    at com.sun.deploy.net.proxy.DynamicProxyManager.reset(Unknown Source)
    at com.sun.deploy.net.proxy.DeployProxySelector.reset(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.javafx.main.Main.tryToSetProxy(Main.java:572)
    at com.javafx.main.Main.launchApp(Main.java:640)
    at com.javafx.main.Main.main(Main.java:805)
4

2 に答える 2

4

これは FX とシステム プロキシの問題です。FX はシステム プロキシをチェックしようとしていますが、設定が間違っていると失敗します。その理由は次の機能強化です: http://javafx-jira.kenai.com/browse/RT-21705

プロジェクト プロパティの JVM 引数の隣に追加する"-Djavafx.autoproxy.disable=true"か、システム プロキシを修正して解決します。

于 2012-08-22T08:13:19.853 に答える
-1

想定とは異なるアプリを実行している場合は、サンプルコードがネットワーク接続とは関係がないようにしてください。また、NetbeansのJavaFXランタイムプラットフォーム、つまりアプリのJavaFXランタイムプラットフォームも確認してください。これは、「ツール」メニューの「Javaプラットフォーム」にあります。

于 2012-08-22T06:55:17.657 に答える