已在Windows和Raspberry Pi上运行Java程序。在Pi上运行程序时,我需要使用-Djava.library.path=/usr/lib/jni
运行jar时,请运行
RXTX libs can be found
。我想做System.setProperty()
进行编码,但无效。
Pi上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
。
答案 0 :(得分:0)
我认为问题是在启动应用程序之前需要设置RXTX lib文件的路径。因此,使用System.setProperty()
方法进行设置可能是可行的,但是它会在程序启动后(因此在读取属性之后)设置属性。
我在RaspberryPi上使用RXTX库已有相当长的一段时间了,我还没有找到一种无需命令行参数即可启动此应用程序的方法。启动应用程序的最简单方法可能是小的 bash脚本。
另一种方法是不使用RXTX(它已经很老了,不值得推荐),而是使用类似in this answer的替代方法。