繁体   English   中英

运行Debian 6的设备上的javax.comm.CommPortIdentifier.getPortIdentifiers()为空

[英]javax.comm.CommPortIdentifier.getPortIdentifiers() empty on device running Debian 6

恐怕这可能不是严格意义上的编程问题,而是我需要清除的更多内容才能继续进行编程。

我只是试图编写一个程序进行串行通信,特别是使用javax.comm API,并且我在Win7上获得了成功,但是当我在设备上运行任何此类程序时,都没有输出。 该设备正在运行Debian 6,并且已安装JDK1.8.0。

为了在Win7上运行程序,我需要获取API并将三个魔术文件comm.jarwin32comm.dlljavax.comm.properties放在特定的文件夹中,但是我不知道如何在我的文件夹中执行此操作设备。

有谁知道我是否可以将这三个文件放在任意文件夹中并使用路径环境变量引用它们?

我试图运行的代码很简单:

package test;
import java.util.Enumeration;
import javax.comm.*;

public class Test { 
    public static void main(String[] args) {
        Enumeration e = CommPortIdentifier.getPortIdentifiers();

        while (e.hasMoreElements()) {
            CommPortIdentifier com = (CommPortIdentifier) e.nextElement();
            System.out.println(com.getName());          
        }
}

根据http://reprap.org/wiki/JavaComm#Installation_on_Linux,您需要一些文件:

commapi/jar/comm.jar
commapi/lib/libLinuxSerialParallel.so
commapi/lib/libLinuxSerialParallel_g.so
commapi/docs/javax.comm.properties

“将jar文件放在类路径中的某个位置(例如usr / java / j2sdk / jre / lib / ext之类的位置)中,.so文件放在Java的负载库路径中(在我的系统中位于/ usr / java / j2sdk / jre / lib / i386)和javax.comm.properties“ java可以找到它的地方”-在我的系统上,这似乎意味着从运行项目的目录创建指向它的符号链接,但是在那里必须是更简单的方法。”

如果二进制文件在您的系统上不起作用,则可能需要查找用于构建库的源,然后自己进行编译。

有关如何自己执行此操作的线索:

http://www.phidgets.com/phorum/viewtopic.php?f=39&t=3750

https://github.com/rxtx/rxtx.git

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM