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 라이브러리가 어떻게 든 포함되지 않았습니까?
나는 받아들이는 대답을 원합니다! – mkstlwtz
jar 파일을 실행할 때 실제로 rxtx.jar가 클래스 경로에 있습니까? 빈 catch 블록을 사용하여 이것을 억제하지 않으면 예외가 발생합니다. –
문제가 해결되었습니다. Eclipse에서 rxtxSerial.dll을 JDK의 bin 디렉토리에 넣은 후 작업이 완료되었다고 생각했습니다. JRE는 JRE의 bin 디렉토리에 동일한 파일을 넣기 전까지는 작동하지 않습니다. – mkstlwtz