gnu.io.PortInUseException:未知的应用程序?

问题描述 投票:6回答:5
void connect ( String portName ) throws Exception
{
    CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
    if ( portIdentifier.isCurrentlyOwned() )
    {
        System.out.println("Error: Port is currently in use");
    }
    else
    {
        System.out.println(portIdentifier.getCurrentOwner());
        CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);

        if ( commPort instanceof SerialPort )
        {
            SerialPort serialPort = (SerialPort) commPort;
            serialPort.setSerialPortParams(115200,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);

            InputStream in = serialPort.getInputStream();
            OutputStream out = serialPort.getOutputStream();

            (new Thread(new SerialReader(in))).start();
            (new Thread(new SerialWriter(out))).start();

        }
        else
        {
            System.out.println("Error: Only serial ports are handled by this example.");
        }
    }     
}

正在给予

gnu.io.PortInUseException: Unknown Application
    at gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354)

我在Windows 7家庭64位中使用RXTX和Java。

serial-port rxtx
5个回答
13
投票

检查计算机上是否存在/ var / lock文件夹。


mkdir /var/lock
chmod go+rwx /var/lock


3
投票

重新启动系统/禁用端口。 实际问题是当程序运行端口打开并且在程序终止后它没有关闭。 有用。


2
投票

我遇到了这个问题,因为端口实际上正在使用中。之前的javaw.exe实例出现在Windows任务管理器中,它占用了端口。

以前的java进程挂起的原因是硬件问题:将我碰巧使用的USB-2-serial转换器插入USB-2端口时,一切正常。当插入USB-3端口时,RXTX CommPortIdentifier代码将挂起,然后Java的后续实例收到PortInUseException。


0
投票

我使用Process Explorer找到一个带有句柄\Device\PCISerial0并关闭句柄的进程。如果您的COM端口不在PCI卡上,则名称可能不同。


0
投票

对于Eclipse(或您的ide)下的Windows Open Task Manager,找到Java应用程序。右键单击它 - >结束任务

© www.soinside.com 2019 - 2024. All rights reserved.