编辑: 我忘了在Eclipse中将start类更改为客户端包!
这很奇怪,它在eclipse中运行正常,然后我导出它并且它给了我一个java.lang.NumberFormatException
。
Start.java的pastebin
转储:
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
}
答案 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类!糟糕!