CommPortIdentifier.getPortIdentifier()崩溃了程序

时间:2016-05-12 21:36:26

标签: java io

我有一些适用于Windows 7的代码,但是当我在Windows 10计算机上尝试相同的代码时程序关闭。这是代码:

try {
    CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier((String)openParameters[0]);
    this._serCommPort = (SerialPort) portId.open("PTxCore", 1000);
    this._serCommPort.setSerialPortParams((int)openParameters[1], (int)openParameters[2], SerialPort.STOPBITS_1, (int)openParameters[3]);
    this._serCommPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
    this._serCommPort.addEventListener(this);
    this._serCommPort.notifyOnDataAvailable(true);
    this._commsOutStream = this._serCommPort.getOutputStream();
    this._commsInStream = this._serCommPort.getInputStream();

    this.clearBuffer();

    this.onTraceEvent(TraceEventArgs.Mode.Hidden, "{Open}");
}
catch (UnsupportedCommOperationException | TooManyListenersException | IOException | PortInUseException | NoSuchPortException ex) {
    throw new PTxCoreException(ex.getMessage(), ex.getClass().getName());
}
}

没有异常被捕获,它只是关闭。我尝试了不同版本的Eclipse(32/64位),并在网络上随处可见但无法找到解决方案。有什么想法可能会发生这种情况吗? Serialio.jar(我认为处理这个?)显然与Windows 10兼容。

当它关闭时,我收到此错误:

... javaw.exe的

Eclipse的底部还有这些东西:

javax.comm.SerialPort implementation: version 3.8
Copyright (c) 1998-2009 Serialio.com, All Rights Reserved.
Serialio Library: version 10.1.2: build 9221
Copyright (c) 1996-2012 Serialio.com, All Rights Reserved.
os.name="Windows 10"  os.arch="x86"
osName=Windows 10 osArch=x86
Platform not supported, check VM properties os.name & os.arch

1 个答案:

答案 0 :(得分:0)

它有点迟到但可能对某人有所帮助。我得到了同样的错误。这是因为我使用的是旧版本的Serialio.jar。在将其升级到最新版本(我认为版本:9233?)后,它在Windows 10上开始正常运行。