12

我正在使用 Eclipse IDE 开发 Java 应用程序。我的操作系统是 Ubuntu 11。我的应用程序使用 RXTX 库 (gnu.io.*) 进行串行通信。我通过这样做(项目->属性->java buld路径->添加外部jar)在项目中添加了RXTXomm.jar文件。每当我运行我的代码时,它都会给我这个错误。

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading
gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in 
java.library.path

我什至尝试安装 librxtx-java.deb。但它并没有解决问题。我在文件系统中四处搜索,发现 librxtxSerial.so 位于 /usr/lib/jni 中。

我该如何解决这个问题?

提前致谢

4

3 回答 3

16

在项目 -> 属性 -> Java 构建路径中找到您的 jar。单击+打开 JAR 的属性,选择 Native library location 并编辑它以指向 RXTX 的共享库(.DLL、.so、.dylib)。

于 2013-02-19T08:33:30.570 回答
2

一种方法是在项目的 Eclipse 运行配置中设置 java.library.path。您可以在运行配置的参数选项卡中编辑 VM 参数(访问此参数的几种方法包括右键单击项目->运行方式->运行配置...和运行菜单->运行配置...)。

如果您在项目的根目录中创建一个 lib 目录并将 RXTX 库的副本放在 lib 目录中,您可以使用以下 VM 参数(用您的项目名称替换 ProjName)。

-Djava.library.path=${project_loc:ProjName}/lib
于 2013-02-19T08:50:11.797 回答
2

打开终端(Ctrl+Alt+T)并检查:

echo $JAVA_HOME 
 # JDKDIR : /usr/lib/jvm/java-7-oracle

然后运行:

sudo cp /usr/lib/jni/librxtxSerial.so $JAVA_HOME/jre/lib/i386/
于 2014-02-08T10:57:17.537 回答