2012-06-07 2 views
1

편집 : 시작 클래스를 Eclipse의 클라이언트 패키지로 변경하는 것을 잊었습니다!Java 예외가 있습니다 : java.lang.NumberFormatException

이것은 이상하다, 그것은 일식에서 잘 작동한다, 그리고 나는 그것을 내 보낸다. 그리고 나에게 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) 

이 배치 파일로 일식에서 작동하지만 왜하지 않습니다.

내가 소켓에 사용하는 코드는 내가이 나중에 정적하지 않도록 변경됩니다

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 시도 { \t \t \t 소켓 = 새 소켓 ("gudenau.no-ip.org", 45678); \t \t \t out = 새로운 PrintWriter (socket.getOutputStream(), true); = 새의 BufferedReader에 \t \t \t (새 InputStreamReader ( \t \t \t \t \t socket.getInputStream())); \t \t} 캐치 (NumberFormatException이 전자) { \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} 캐치 (IOException이 전자) { \t \t \t e.printStackTrace(); \t \t \t System.exit (-3); \t \t} – gudenau

+0

코드는 정상입니다. Eclipse를 허가 한 방화벽이 없다고 확신합니까? –

답변

0

이클립스 항아리 수출업자에서 시작 클래스를 변경해야했습니다! 죄송합니다.

+0

정직 해줘서 고마워! –

+3

다른 사람들이 귀하의 고침에서 배울 수 있도록 귀하의 솔루션을 '수락'으로 표시하십시오. 건배 ~ –

0

당신이 보여 스택 추적은 예외가 직접 Integer 객체를 인스턴스화 Start.main() 라인 (141)에서 나타냅니다. Socket 생성자가 원시 int을 사용하고 있기 때문에 실제 문제는 아닙니다. 더 나은 대답을 위해 라인 141을 포위하는 코드로 게시물을 업데이트하십시오.

1

141 호에 추가 한 코드가 정확하지 않습니다 (잘못된 것일 수 있습니다). Start (줄 141) 클래스에서 오류가 발생했습니다. 나는 거기에 정수를 만들려고 노력하고 있지만 Integer로 구문 분석하지 않는 String에서 추측하고 있습니다.

해당 메소드 (또는 일부 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

관련 문제