2012-10-11 4 views
1

Eclipse에서 실행되는 응용 프로그램이 있습니다. RxTx 코드를 사용하여 직렬 포트에 액세스합니다. 응용 프로그램은 CommPortIdentifier를 사용하여 JComboBox에 추가하는 포트 목록을 설정합니다. 이 모든 것이 Eclipse에서 잘 작동합니다. Java 응용 프로그램이 Eclipse에서 실행되지만 Jar가 직렬 포트를 찾지 못함

public void initArguments() { 
    String[] args = new String[3]; 
    args[0] = "prot2prom.csv"; 
    args[1] = "COM4"; 
    args[2] = "Bank0"; 
    Scanner scan = null; 
    Enumeration   portList; 
    CommPortIdentifier portId; 
    String    portName; 
    String    target; 


     // Select The Serial Port 
    target = args[1]; 
    portList = CommPortIdentifier.getPortIdentifiers(); 
    while (portList.hasMoreElements()) { 
     portId = (CommPortIdentifier) portList.nextElement(); 
     portName = portId.getName(); 
     portStrings.addItem(portName); 
     if(portName.equals(target)){ 
      portStrings.setSelectedIndex(portStrings.getItemCount() - 1); 
     } 
    } 
} 

내가 JAR 파일에서 해당 응용 프로그램을 실행하면 오류없이 실행되지만 직렬 포트를 사용하도록 가고 JComboBox가 비어있을 때 (내 어느 것도 선택하지 제외) 포장 마차. 항아리를 어떻게 디버깅합니까? RxTx 라이브러리가 어떻게 든 포함되지 않았습니까?

+1

나는 받아들이는 대답을 원합니다! – mkstlwtz

+0

jar 파일을 실행할 때 실제로 rxtx.jar가 클래스 경로에 있습니까? 빈 catch 블록을 사용하여 이것을 억제하지 않으면 예외가 발생합니다. –

+0

문제가 해결되었습니다. Eclipse에서 rxtxSerial.dll을 JDK의 bin 디렉토리에 넣은 후 작업이 완료되었다고 생각했습니다. JRE는 JRE의 bin 디렉토리에 동일한 파일을 넣기 전까지는 작동하지 않습니다. – mkstlwtz

답변

0

문제가 해결되었습니다. 저는 rxtxSerial.dll을 JDK의 bin 디렉토리에 넣은 후 Eclipse가 작동 할 때 완료된 것으로 생각했습니다. JRE는 JRE의 bin 디렉토리에 동일한 파일을 넣기 전까지는 작동하지 않습니다.

+0

JDK를 수정하는 것은 좋지 않은 스타일이며 모든 JDK 업데이트마다 반복해야합니다. – Robert

1

명령 행 콘솔에서 java -jar <myjarfile.jar> 명령을 사용하여 JAR 파일을 실행하면 Eclipse에 표시된대로 콘솔 출력이 표시됩니다.

RXTX를로드하는 중에 문제가 발생하면 누락 또는 결함을 나타내는 오류 메시지가 나타납니다.