1

編集: Eclipse で開始クラスをクライアント パッケージに変更するのを忘れていました!

これは奇妙です。Eclipseで正常に動作し、それをエクスポートすると、java.lang.NumberFormatException.

Start.java のペーストビン

http://pastebin.com/KxfApWKb

ダンプ:

Exception in thread "main" java.lang.NumberFormatException: For input string: "gudenau.no-ip.org"

        at java.lang.NumberFormatException.forInputString(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at java.lang.Integer.<init>(Unknown Source)
        at com.gudenau.ChatServer.Start.main(Start.java:141)

Eclipseでは機能するのにバッチファイルでは機能しない理由がわかりません。

ソケットに使用するコードは

socket = new Socket("gudenau.no-ip.org", 45678);

後で静的にならないように変更します。

    try {
        socket = new Socket("gudenau.no-ip.org", 45678);

        out = new PrintWriter(socket.getOutputStream(), true);
        in = new BufferedReader(new InputStreamReader(
                socket.getInputStream()));
    } catch (NumberFormatException e) {
        e.printStackTrace();
        System.exit(-1);
    } catch (UnknownHostException e) {
        e.printStackTrace();
        System.exit(-2);
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(-3);
    }

141 付近のコードを編集します。

@Override
public void windowIconified(WindowEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void windowOpened(WindowEvent arg0) {
    // TODO Auto-generated method stub

}
4

3 に答える 3

1

141 行目に追加したコードは正しくないようです (私が間違っている可能性があります)。エラーは、Start というクラスから発生しています (141 行目)。そこで整数を作成しようとしていると思いますが、整数に解析されない文字列からです。

そのメソッド (または一部の System.outs) にデバッグ ポイントを追加して、実際に整数に変換しようとしているものを確認することができます。

更新: 間違ったパッケージを見ています。com.gudenau.ChatCleint ではなく、com.gudenau.ChatServer が必要です。

于 2012-06-07T17:20:52.193 に答える
0

Eclipse jar エクスポーターの開始クラスを変更する必要がありました! おっとっと!

于 2012-06-07T17:52:41.523 に答える
0

Start.main()表示されているスタック トレースは、オブジェクトを直接インスタンス化する の141 行目からの例外であることを示していIntegerます。Socketコンストラクターはプリミティブを使用しているためint、これが実際の問題になることはありません。Start.main()より良い回答を得るには、 の141 行を囲むコードで投稿を更新してください

于 2012-06-07T17:13:01.143 に答える