CommPortIdentifier.getPortIdentifiers пуст.

Я создаю простое приложение, которое взаимодействует через последовательный порт с использованием Java Communication API javax.comm.

Вот некоторый код в моем основном методе java, который я написал:

CommPortIdentifier cpi = null;
        Enumeration e = CommPortIdentifier.getPortIdentifiers();
        while (e.hasMoreElements()) {
            try {
                cpi = (CommPortIdentifier) e.nextElement();
            } catch (NoSuchElementException n) {

            }
            System.out.println(cpi.getName());
        }

Перечисление e всегда пусто, даже если я подключен к порту COM 4 при запуске этого.

также, запустив этот код:

portRead = CommPortIdentifier.getPortIdentifier("COM8");

вызвать бросок NoSuchPortException

Я думаю, что правильно выполнил часть установки и поместил файл свойств, файл win32com.dll в нужные места.

Вы знаете, в чем может быть проблема?

Спасибо


person Saher Ahwal    schedule 11.04.2013    source источник


Ответы (4)


Убедитесь, что win32com.dll (поставляется с javax.com) находится в каталоге jre\bin. Убедитесь, что javax.comm.properties (поставляется с javax.com) находится в каталоге jdk\lib.

person Outlier    schedule 20.06.2013

Помните, что вам всегда нужно добавлять все разархивированные файлы из javax.comm.zip в jre.

win32com.dll - jre/bin

comm.jar - jre/lib/ext

java.comm.properties - jre/lib (после добавления этого я обнаружил, что проблема с исключениями решена)

person user3311900    schedule 14.02.2014

Это работает для меня (я установил x86 jdk) и выполнил шаги

Ваша проблема в том, что Windows не может сообщить правильный ПОРТ вашей программе JAVA.

Вы должны скопировать нужные файлы в нужное место, перейдя по этой ссылке.

http://kishor15389.blogspot.com/2011/05/how-to-install-java-communication.html

person Algerowalid    schedule 01.06.2016

Найдите порт, на котором работает ваше устройство (попробуйте power shell или гипертерминал, чтобы найти все COM-порты, попробуйте and-reading-info-from-serial-ports.aspx?Redirected=true" rel="nofollow">ссылка)

person nithin.cv    schedule 31.07.2013
comment
Обратите внимание, что ответы только по ссылкам не приветствуются, ответы SO должны быть конечной точкой поиска решения (в отличие от еще одной остановки ссылок, которые со временем устаревают). Пожалуйста, рассмотрите возможность добавления здесь отдельного синопсиса, оставив ссылку в качестве ссылки. - person kleopatra; 31.07.2013