gpt4 book ai didi

java - RXTX 无法在 windows 7 64 位下列出或找到端口

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:04 26 4
gpt4 key购买 nike

早上好

我在 Windows 7 64 位上使用/或安装 rxtx 时遇到问题。我之前在 x86 win XP 系统上使用过它,没有遇到任何问题。由于某种原因重新安装到这个新系统,rxtx 无法找到任何端口。我尝试了 rxtx 安装、Cloud Hopper 的 64 位 native 库并删除了所有 rxtx 文件并从头开始。找到了 RXTXcomm.jar,我可以浏览 NetBeans 中的包,但实现似乎已损坏或未找到。

此行每次执行时都会失败:

comPort = "COM1";
portId = CommPortIdentifier.getPortIdentifier(comPort);

并抛出 NoSuchPortException。

使用它列出串行端口不会产生任何结果。

Enumeration ports = CommPortIdentifier.getPortIdentifiers();
String portArray[] = null;
while (ports.hasMoreElements()) {
CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
System.out.println(port.getName());
}

我已经检查了串行端口是否可用,所以此时我想知道 native 库是否只是为 windows 7 64 位损坏了。

有没有人在windows 7 64位下成功使用RXTX 2.2pre2?

构造函数中的违规代码部分:

public SerialControl(String name, String comPort, int baudrate, int databits, String     parity, double stopbits) throws Exception {
int stop = 0;
int data = 0;
int par = 0;

this.name=name;

// Sanity checks and interpretation
if (baudrate > 115200 || baudrate < 300) {
System.err.println(name+": constructor(): Invalid baudrate "+baudrate);
throw new Exception("Invalid baudrate, " + baudrate);
}

if (databits >= 5 && databits <= 8) {
switch (databits) {
case 5:
data = SerialPort.DATABITS_5;
break;
case 6:
data = SerialPort.DATABITS_6;
break;
case 7:
data = SerialPort.DATABITS_7;
break;
case 8:
data = SerialPort.DATABITS_8;
break;
default:
System.err.println(name+": constructor(): Invalid data bits, switched " + databits);
throw new Exception("Invalid data bits, switched " + databits);
}
} else {
throw new Exception("Invalid data bits=" + databits);
}

if (stopbits >= 1.0 && stopbits <= 2.0) {

if (stopbits == 1.0) {
stop = SerialPort.STOPBITS_1;
} else if (stopbits == 1.5) {
stop = SerialPort.STOPBITS_1_5;
} else if (stopbits == 2.0) {
stop = SerialPort.STOPBITS_2;
} else {
System.err.println(name+": constructor(): Invalid stop bits, switched " + stopbits);
throw new Exception("Invalid stop bits, switched " + stopbits);
}
} else {
System.err.println(name+": constructor(): Invalid stop bits, switched " + stopbits);
throw new Exception("Invalid stop bits " + stopbits);
}

switch (parity) {
case "S":
par = SerialPort.PARITY_SPACE;
break;
case "E":
par = SerialPort.PARITY_EVEN;
break;
case "M":
par = SerialPort.PARITY_MARK;
break;
case "O":
par = SerialPort.PARITY_ODD;
break;
case "N":
par = SerialPort.PARITY_NONE;
break;
default:
System.err.println(name+": constructor(): Invalid parity, switched " + parity);
throw new Exception("Invalid parity, switched " + parity);
}

// Inits
// Try to find the port specified
try {
portId = CommPortIdentifier.getPortIdentifier(comPort);
} catch (Exception e) {
System.err.println(name+": constructor(): No such port \"" + comPort+"\"");
e.printStackTrace();
throw e;
}

// Open the port
try {
serialPort = (SerialPort) portId.open("User Port", 2000);
} catch (PortInUseException e) {
System.err.println(name+": constructor(): Could not open port " + comPort);
throw e;
}

// Grab the input stream
try {
inputStream = serialPort.getInputStream();
} catch (IOException e) {
System.err.println(name+": constructor(): Could not get input stream for " + comPort);
throw e;
}

// Set the serial port parameters, no flow control
try {
serialPort.setSerialPortParams(baudrate, data, stop, par);
serialPort.setDTR(false);
serialPort.setRTS(false);
} catch (UnsupportedCommOperationException e) {
System.err.println(name+": constructor(): Error initializing " + comPort);
throw e;
}
}

最佳答案

我遇到了同样的问题。我使用 Eclipse 作为编程的 IDE,我在官方 wiki 中找到了这个替代配置:

  1. 将RXTXcomm.jar复制到你项目的lib目录下
  2. 将您的包资源管理器导航到 lib 文件夹,右键单击 RXTXcomm.jar |构建路径 |添加到构建路径
  3. 将 rxtxSerial.dll 和 rxtxParallel.dll 文件复制到项目的根目录
  4. Under Run |运行配置 |类路径选项卡 |用户条目 |进阶 |添加文件夹,选择项目的根文件夹
  5. 这应该足以在 Eclipse 下运行它,在部署可运行的 jar 时,只需确保 dll 与 jar 位于同一文件夹中(JVM 假定它用于类路径)

(这是我的第一个答案,我不知道是否允许我发布外部链接,但是五个步骤来自http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_Eclipse)

希望对您有所帮助!

关于java - RXTX 无法在 windows 7 64 位下列出或找到端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12181926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com