Java 获取串口列表 不用任何第三方组件

2018-11-15 发表在 编程语言 2096

之前用RXTX 获取串口列表的时候,如果串口被使用,就没法获取到了。

所以采用另外一种方式,利用注册表来获取所有串口列表

package com.zh.client.serial.utils;

import java.io.*; import java.util.ArrayList; import java.util.List;

/   获取com端口,windows专用  / public class ComPortScanUtil {

    public static List<String> getComPorts() {         List<String> ports = new ArrayList<>();

        try {

            String command = "reg query HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM";

            Process process = Runtime.getRuntime().exec(command);             InputStream in = process.getInputStream();             BufferedReader br = new BufferedReader(new InputStreamReader(in));

            String line;

            int index = 0;             while ((line = br.readLine()) != null) {                 if (line == null || "".equals(line)) {                     continue;                 }                 if (index != 0) {                     String[] strs = line.replaceAll(" +", ",").split(",");                     String comPort = strs[strs.length - 1];                     ports.add(comPort);                 }                 index++;             }         } catch (Exception e) {             e.printStackTrace();         }         return ports;     }

    public static void main(String[] args) {         System.out.println(getComPorts());     } }


作者:贝塔博客
本站使用「署名 4.0 国际」创作共享协议,转载请在文章明显位置注明作者及出处。
评论
登录以后才可以发布评论哦, 点击登录 发布评论
评论列表 2人参与,11条评论
test1
2019-05-13 10:23:41
test
2019-01-16 09:24:19
Jingle : 回复@百里登风 sadsad
2019-05-14 11:59:16
Jingle : 回复@Jingle asd
2019-05-14 11:59:08
Jingle : asd
2019-05-14 11:59:05
Jingle : 回复@百里登风 asdsd
2019-05-14 11:59:01
百里登风 : 回复@百里登风 .
2019-05-10 18:03:12
百里登风 : 回复@百里登风 0.0
2019-04-29 11:14:28
百里登风 : 0.0
2019-04-29 11:14:22
百里登风 : test
2019-04-29 11:14:16