在 Windows 和 Raspberry Pi 上运行 Java 程序。在 Pi 上运行程序时,我需要使用
-Djava.library.path=/usr/lib/jni
当我运行罐子时,
。我想在 用RXTX libs can be found
编码,但不起作用。
System.setProperty()
Pi 上的
setProperty()
有任何已知问题吗?
已验证 Pi 上的 so 文件位于
/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
我认为问题在于在启动应用程序之前需要设置 RXTX lib 文件的路径。因此,使用
System.setProperty()
方法设置它可能是有效的,但它是在程序启动后设置属性的,因此是在读取属性后设置的。
我在 RaspberryPi 上使用 RXTX 库已经有一段时间了,但我还没有找到一种无需命令行参数即可启动该应用程序的方法。启动应用程序的最简单方法可能是一个小的 bash 脚本。
另一种方法是不使用 RXTX (这是相当旧的并且不真正值得推荐),而是使用像本答案中描述的替代方案。