Попытка установить путь lib в коде для RXTX в Java на Pi - PullRequest
1 голос
/ 05 июля 2019

Запустите программу Java на Windows и Raspberry Pi. При запуске программы на Pi мне нужно использовать -Djava.library.path=/usr/lib/jni

когда я запускаю флягу, то RXTX libs can be found. Я хочу сделать это в код с System.setProperty(), но он не работает.

Есть ли известные проблемы с setProperty() на Пи?

Проверено, поэтому файлы на Pi находятся в /usr/lib/jni. Распечатка показывает, что путь отправляется на setProperty(), как и ожидалось.

    if (doPi == true)
        s = "/usr/lib/jni"; // Pi so files
    else
        s = "C:\\Program Files (x86)\\Java\\jre1.8.0_181\\bin"; // Win dll files

    System.setProperty("java.library.path", s);
    System.out.println("Java lib path " + s);

Я ожидал, что код setProperty() позволит мне не нуждаться в

-Djava.library.path=/usr/lib/jni

При запуске файла jar.

Но без него я получаю ошибку, что RXTX lib files are not found.

1 Ответ

0 голосов
/ 05 июля 2019

Я думаю, что проблема в том, что путь к файлам RXTX lib должен быть установлен перед запуском приложения . Поэтому установка его с использованием метода System.setProperty(), вероятно, работает, но она устанавливает свойство после запуска программы и, следовательно, после того, как свойство было прочитано.

Я уже давно использую библиотеку RXTX на RaspberryPi, и я не нашел способа запустить это приложение без параметров командной строки. Вероятно, самый простой способ запустить приложение - это небольшой скрипт bash .

Другим способом было бы не использовать RXTX (который довольно старый и не очень рекомендуется), но использовать альтернативу, подобную описанной в этом ответе .

...