gnu.io.PortInUseException: неизвестное приложение? - PullRequest
6 голосов
/ 28 января 2012
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)

Я использую RXTX с Java в Windows 7 home 64-bit.

Ответы [ 5 ]

13 голосов
/ 24 декабря 2013

Убедитесь, что на вашем компьютере существует папка / var / lock.


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

3 голосов
/ 29 января 2012

Перезагрузите систему / отключите порт.
Фактическая проблема - когда программа запускает порт, открытый и не закрывающийся после завершения программы.
это работает.

2 голосов
/ 05 июля 2012

Я столкнулся с этой проблемой, потому что порт действительно использовался .Предыдущий экземпляр javaw.exe появился в диспетчере задач Windows, он перегружал порт.

Причина, по которой предыдущий процесс java завис, была аппаратная проблема: при подключении преобразователя последовательного интерфейса USB-2, который у меня произошелиспользовать в порт USB-2, все работало нормально.При подключении к порту USB-3 код RXTX CommPortIdentifier зависает, а затем последующие экземпляры Java получают исключение PortInUseException.

0 голосов
/ 20 марта 2019

Для Windows Откройте диспетчер задач под Eclipse (или ваш ide) найдите приложение Java.Щелкните правой кнопкой мыши по нему -> Завершить задачу

0 голосов
/ 10 декабря 2014

Я использовал Process Explorer, чтобы найти процесс с дескриптором \Device\PCISerial0 и закрыл дескриптор. Если ваши COM-порты не на PCI-карте, имя может отличаться.

...