Cześć

Mam dość spory problem z programem, który ma za zadanie odczytywać dane z portu z podpiętego urządzenia i rysować na ich podstawie wykres poprzez graficzną bibliotekę javaFx. Mianowicie sam program działa prawidłowo, kiedy uruchamiam go z IDE intellij, natomiast kiedy utworzę plik wykonywalny .jar uruchamia się cała scena graficzna – klikam uruchom - program uruchamia metodę call z pliku PartialResultsTask - dochodzi w tej metodzie do warunku checkPattern z klasy Device, która ma za zadanie sprawdzić dostępne porty i otworzyć ten, na którym jest urządzenie i w tym momencie tak jakby program na coś czeka i nie przechodzi dalej. Używam biblioteki JSSC:

JSSC

W terminalu wygląda to tak, że wyświetla się linia:

System.out.println("Is it working?");

metody call i kursos.

Nawet, kiedy w metodzie checkPattern wypiszę poprzez System.out.println jakąkolwiek wiadomość tekstową – nic się nie wyświetla w terminalu.

public static boolean checkPattern()  {

        System.out.println("Doesn't work in jar");

        String portsArray[] = SerialPortList.getPortNames();

        for (String port : portsArray) {
            try {
                serialPort = new SerialPort(port);
                serialPort.openPort();
                serialPort.setParams(115200, 8, 1, 0);
                serialPort.readString();

                Thread.sleep(1000);

                if (Pattern.matches(PATTERN, (serialPort.readString()).trim())) {

                    System.out.println("nazwa portu: " + port);
                    isOpened = true;
                    return true;
                }
                serialPort.closePort();
            } catch (SerialPortException e) {
                System.out.println(e);
            } catch (InterruptedException e) {
                System.out.println(e);
            }
        }

        return false;
    }

Załączam link do kodu na githubie:
Program

Dołączyłem plik wykonywalny .jar do repozytorium - program nie przejdzie dalej bez urządzenia, ale generalnie zobaczycie to samo.

Mam wrażenie, że jest to związane z portem, a raczej brakiem uprawnień dla pliku(możliwe, że system blokuje wykonywanie, bo z tego co się orientuję IDE ma wyższe uprawnienia), żeby mógł odczytywać z niego dane, ewentualnie zależności maven’a nie dodają się do wykonywalnego .jar’a przy tworzeniu, ale w takim przypadku powinno wyrzucić jakiś wyjątek. Korzystam z systemu macos. Na windowsie mam ten sam problem.

Pozdrawiam,
szubi