1

编辑:我忘记在 Eclipse 中将启动类更改为客户端包!

这很奇怪,它在 Eclipse 中运行良好,然后我导出它,它给了我一个java.lang.NumberFormatException.

Start.java的pastebin

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.out)处添加一个调试点,以查看您实际尝试转换为整数的内容。

更新:您正在查看错误的包,您需要 com.gudenau.ChatServer,而不是 com.gudenau.ChatCleint。

于 2012-06-07T17:20:52.193 回答
0

您显示的堆栈跟踪表明异常来自第 141 行Start.main(),它直接实例化了一个Integer对象。由于Socket构造函数采用的是原语int,因此这不是实际问题。请使用第 141 行周围的代码更新您的帖子以Start.main()获得更好的答案

于 2012-06-07T17:13:01.143 回答
0

我需要更改 eclipse jar 导出器中的启动类!哎呀!

于 2012-06-07T17:52:41.523 回答