我在使用 comm.jar 时遇到问题。
问题是我连接了设备,并使用此代码在池中启动了应用程序
public static void main(String[] args) {
Enumeration portList;
CommPortIdentifier portId = null;
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
System.out.println("port::" + portId.getName());
}
while (true) {
try {
Thread.sleep(2000);
} catch (InterruptedException ex) {
Logger.getLogger(JavaComPortFinding.class.getName()).log(Level.SEVERE, null, ex);
}
main(args);
}
}
输出:
port::COM1
port::COM10
经过一次轮询后,我已弹出该设备。我仍然得到的答复是
port::COM1
port::COM10
任何人都可以帮助我/建议在投票中获得动态响应。
最佳答案
您可以尝试类似的操作,因为每次都应该重新创建 CommPortIdentifier。
class TestProgram
{
public static void main(String[] args)
{
while(true)
{
try
{
Thread.sleep(2000);
}
catch(InterruptedException ex)
{
Logger.getLogger(TestProgram.class.getName()).log(Level.SEVERE, null, ex);
}
scanPorts();
}
}
private static void scanPorts()
{
Enumeration portList;
CommPortIdentifier portId = null;
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements())
{
portId = (CommPortIdentifier) portList.nextElement();
System.out.println("port::" + portId.getName());
}
}
}
编辑:
我刚刚在 Windows XP SP3 上使用 USB 上的黑莓手机测试了该程序。当我启动该程序时,我看到正常的 COM1 和两个 BlackBerry 的 COM 端口。一旦我断开 BlackBerry 的连接,这些端口就会保留在设备管理器中。如果我手动删除它们,它们就会在程序中消失(无需重新启动)。
关于java - comm.jar 通信串口java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385455/