Я сделал программу в java, которая подключается к внешнему микроконтроллеру AVR через последовательный порт (RS232).Закрытие последовательного порта приводит к сбою программы на mac
Когда я хочу закрыть последовательное соединение, программа java аварийно завершает работу и зависает. Однако это происходит только на Mac (OSX 10.9.3), и в Windows нет проблем.
я закрыть порт следующим образом:
private SerialPort serialPort;
public void closePort() {
serialPort.close();
}
Я попытался следующий код для фиксации его: тогда нет аварии после закрытия порта, но в следующий раз, когда я хочу, чтобы открыть один и тот же порт, Я получаю исключение в порте.
public class CloseThread extends Thread {
private SerialPort port;
public CloseThread(SerialPort port) {
super();
this.port = port;
}
@Override
public void run() {
try {
port.getOutputStream().close();
port.getInputStream().close();
port.removeEventListener();
port.close();
} catch (IOException ex) {
Logger.getLogger(CloseThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
А потом в методе я уже упоминал в начале:
public void closePort() throws Exception {
new CloseThread(serialPort).start();
}
Я бы очень благодарен, если кто-то помог мне решить эту проблему, то есть получить близкий метод порта, чтобы не вызвать аварии на макинтош
:))
ли сбой программы? Если бы вы могли дать нам трассировку стека. Сбой компьютера? Попробуйте обновить/переустановить java. – DirkyJerky