2012-06-07 4 views
1

Редактировать: Я был забыт изменить начальный класс на клиентский пакет в Eclipse!У меня есть исключение Java: java.lang.NumberFormatException

Это странно, он отлично работает в затмении, затем я экспортирую его, и он дает мне java.lang.NumberFormatException.

Pastebin из 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) 

Я не понимаю, почему это работает в затмении, но не с помощью пакетного файла.

код я использую для сокета

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

Вы можете показать нам исходный код? –

+0

Shure: \t \t try { \t \t socket = new Socket ("gudenau.no-ip.org", 45678); \t \t \t out = new PrintWriter (socket.getOutputStream(), true); \t \t \t в новом = BufferedReader (новый InputStreamReader ( \t \t \t \t \t socket.getInputStream())); \t \t} catch (NumberFormatException e) { \t \t \t e.printStackTrace(); \t \t \t Система.Выход (-1); \t \t} catch (UnknownHostException e) { \t \t \t e.printStackTrace(); \t \t \t System.exit (-2); \t \t} catch (IOException e) { \t \t \t e.printStackTrace(); \t \t \t System.exit (-3); \t \t} – gudenau

+0

Ваш код в порядке. Вы уверены, что у вас нет брандмауэра, на котором вы могли бы авторизовать Eclipse? –

ответ

0

Мне нужно было изменить начальный класс в экспонирующем банке eclipse! К сожалению!

+0

Спасибо за честность! –

+3

Обязательно отметьте свое решение как «принятое», чтобы другие могли узнать из вашего исправления. Приветствия ~ –

0

Трассировка стека вы показываете указывает, что исключение из линии 141 Start.main(), которая непосредственно создает экземпляр объекта Integer. Поскольку конструктор Socket принимает примитив int, это не может быть реальной проблемой. Пожалуйста, обновите сообщение с кодом, прилагаемым к строке 141, из Start.main(), чтобы получить лучший ответ.

1

Код, который вы добавили для строки 141, кажется неправильным (я мог ошибаться). Ошибка исходит из класса Start (строка 141). Я предполагаю, что вы пытаетесь создать там Integer, но из строки, которая не анализируется в Integer.

Возможно, вы захотите добавить точку отладки этого метода (или некоторого System.outs), чтобы увидеть, что вы на самом деле пытаетесь преобразовать в Integer.

Обновление: вы просматриваете неправильный пакет, вам нужно com.gudenau.ChatServer, а не com.gudenau.ChatCleint.

+0

Обновление после чтения вашего pastebin. Класс, который вы добавили там, имеет пакет «com.gudenau.ChatCleint», вам нужно посмотреть на класс с пакетом «com.gudenau.ChatServer». –

+0

Но проблема в том, что касается ... Как это помогает? – gudenau

+0

@gudenau - исключение вызывается из 'com.gudenau.ChatServer.Start.main()' в строке 141 – Attila

Смежные вопросы