2015-01-09 6 views
0

나는 rs232를 통해 장치에 연결하는 프로그램을 만들었습니다. 연결을 닫고 동일한 응용 프로그램에서 다시 열려고 시도 할 때까지 모든 것이 완벽하게 작동합니다. 다음 예외가 발생합니다.javax.comm.portinuseexception 현재 소유하고있는 포트

javax.comm.PortInUseException: Port currently owned by controller.Application 
     at javax.comm.CommPortIdentifier.open(CommPortIdentifier.java:310) 
     at controller.Application.connect(Application.java:30) 
     at controller.Application.send(Application.java:63) 

응용 프로그램을 완전히 닫은 후 다시 시작하면 포트에 다시 연결할 수 있습니다. 하지만 내 전체 응용 프로그램을 닫지 않고 해당 포트를 다시 사용해야합니다. 나는 다음과 같이 내 포트를 닫으려면 시도했지만 내가 원하는대로 작동하지 않습니다 :

public void disconnect() { 
     if (serialPort != null) { 
      try { 
       in.close(); 
       out.close(); 
       serialPort.removeEventListener(); 
       serialPort.close(); 
       commPort.close(); 
      } catch (Exception ex) { 
       System.out.println("When closing: " + ex); 
      } 
     } 

    } 

방법 또는 내가이 예외를 피하기 위해 내 포트를 닫을 수해야합니까?

답변

0

당신은 내가 그것을

도움 바랍니다

    if (serialPort != null) 
        { 
         serialPort.close(); 
        } 

을 사용할 수 있습니다