我有一个Java异常:java.lang.NumberFormatException

时间:2012-06-07 17:00:08

标签: java

编辑: 我忘了在Eclipse中将start类更改为客户端包!

这很奇怪,它在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

}

3 个答案:

答案 0 :(得分:1)

您为第141行添加的代码似乎不正确(我可能错了)。错误来自名为Start的类(第141行)。我猜你在尝试在那里创建一个Integer,但是从一个不解析成整数的String。

您可能希望在该方法(或某些System.outs)中添加调试点,以查看您实际尝试转换为整数的内容。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我需要更改eclipse jar导出器中的start类!糟糕!