2011-12-12 64 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();來結束連接。