Ubuntu中的jssc SerialPortList

时间:2012-08-31 17:47:18

标签: java ubuntu-12.04

我正在使用Eclipse IDE。使用jssc-0.9.0发布,我已经正确地将jssc.jar添加到Referenced Libraries。但是当我运行它时,它总是被终止。 说“Main [Java Application] / usr / lib / jvm / java-6-openjdk-i386 / bin / java” 这是我的代码

import jssc.SerialPortList;
public class Main {

    public static void main(String[] args) {
        String[] portNames = SerialPortList.getPortNames();
        for(int i = 0; i < portNames.length; i++){
            System.out.println(portNames[i]);
        }
    }
}

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,而且我认为答案是不正确的 - 至少不是jssc的2.8.0版本。

在我的情况下,端口列表是空的,因为Linux(在我的情况下是Ubuntu 12.04)不允许任何用户使用串行端口 - 这就是列表为空的原因。所以我执行了以下命令将我的用户添加到允许使用串口的用户组:

sudo usermod -a -G dialout tim

我需要注销并再次登录系统才能被系统识别为该组的成员 - 但在此之后,当我执行上面的代码片段时,我得到以下行:

/dev/ttyACM0

它现在包含唯一一个由于权限而允许我的用户查看的串口。

答案 1 :(得分:1)

我有类似的问题,所以我检查了jssc代码并发现在linux中,SerialPortList.getPortNames()解析dmesg输出的端口名称以'ttyS'或'ttyUSB'开头 - 但我唯一的串行设备是打开的ttyACM0,当然getPortNames函数找不到它...你也可以检查jssc的linux本机库(libjSSC-0.9_x86.so)是否从jssc.jar中提取到〜/ .jssc / linux /当你运行你的代码...