2011-12-12 38 views
0

我在JAVA中的通信端口有问题。 我正在使用Java版本,因为该版本仍然可以访问Windows COMM端口(串行版)。Windows中的串行COMM端口在关闭后仍然拥有

的问题是,该命令抛出异常:

javax.comm.PortInUseException: Port currently owned by Unknown Windows Application 

的事情是,应用程序打开的第一次的通讯端口,然后我关闭COMM当用户退出一些窗口。 但用户可以返回到窗口,因此,我试图再次打开相同的端口:

我关闭与:

if (puertoSerie != null) { 
puertoSerie.removeEventListener(); 
puertoSerie.close(); 
puertoSerie = null; 
} 

所以我加了PortOwnershipListener

idPuerto.addPortOwnershipListener(new MyResolver()); 

而且错误说:

Somebody else has the port 
Somebody else has the port 

这发生在:

case PORT_OWNERSHIP_REQUESTED: 
if (owned) { 
System.out.println("Owned ... Somebody else has the port"); 
} else { 
System.out.println("Somebody else has the port"); 
} 

任何想法如何解决这个问题?
最好的问候

+0

你检查了netstat -an |找到“:PORT”,如果你的应用程序在你试图关闭后仍然监听端口? – HRgiger

+0

嗨,我发现只有当我使用USB转串口适配器时才会出现问题,如果我在第二个通讯端口开放周期之前拔下并插上适配器,它看起来像正常工作。但我很好奇如何解决这个问题,而不需要拔掉!最好的问候 – Nicolas400

+0

+ HRgiger,我在窗户上,我想我不能嵌套这些信息! – Nicolas400

回答

0

新的java JDK 1.7也有使用java.commrxtx api的串口编程。

如果您愿意,您可以安装并运行它们,并且您可以使用serialPort.close();来结束连接。