2011-12-22 3 views
1

Я использую следующий код для определения компонов. В моей системе есть три порта, но он показывает false в методе ports.hasMoreElements(). Я также добавил comm.jar в библиотеке, и я использую Windows XP (пакет обновления 3). Пожалуйста, загляните в код и помогите мне.идентификация COM-порта в java

import java.util.*; 
import javax.comm.*; 

public class Main 
{ 
    public static void main(String[] args) 
    { 
     Enumeration ports = CommPortIdentifier.getPortIdentifiers(); 
     System.out.println(ports.hasMoreElements()); 
     while(ports.hasMoreElements()) 
     { 
      CommPortIdentifier cpi = 
          (CommPortIdentifier)ports.nextElement(); 
      System.out.println("Port " + cpi.getName()); 
     } 
    } 
} 

Заранее спасибо ..

+0

У вас есть 'dll' также на пути к библиотеке? – fyr

+0

Являются ли эти карты более 4? например com17: Если это так, вам нужно сказать, что окна сами загружают порты (извините, нет кода в данный момент, у меня нет доступа к моим источникам). Еще одна проблема в окнах - слишком длинные пути и подчеркивания !!! на пути к коммати. Попробуйте использовать короткий путь и скопируйте dll в свой рабочий каталог. – Andreas

+0

Нет, я не использую dll. Можете ли вы указать мне, на какую DLL использовать? –

ответ

1

Есть несколько трюков, участвующих в получении API Java Communications для правильного взаимодействия с системой Windows. Среди предметов, которые вы загружаете от Солнца три очень важные файлы:

comm.jar 
win32com.dll 
javax.comm.properties 

Для JVM распознавать последовательные порты, правильное размещение этих файлов важно.

Используйте следующие методы установки, чтобы быть эффективными:
comm.jar должны быть помещены в:

%JAVA_HOME%/lib 
%JAVA_HOME%/jre/lib/ext  

win32com.dll должны быть помещены в:

%JAVA_HOME%/bin 
%JAVA_HOME%/jre/bin 
%windir%System32 

javax.comm.properties следует размещать в:

%JAVA_HOME%/lib 
%JAVA_HOME%/jre/lib 
0

То Прототипом проблема с commapi :-)

Читать через руководство по установке, рядом javacomm.api или wossname, два или три других файлов должны скопированы в очень определенное место.

Все они.

В противном случае вы просто не видите COM-портов, обработка ошибок немного на слабой стороне, извините, я прошел через то же самое о себе трижды ;-)

1

Вы просто импортируете "import gnu.io. *;" и RxTxcomm.jar добавить в библиотеки.

1) Загрузить двоичные файлы Rxtx от http://rxtx.qbang.org/wiki/index.php/Download
2) Извлечь zip-файл.
3) Копирование RXTXcomm.jar ---><JAVA_HOME>/jre/lib/ext
4) Скопировать librxtxSerial.so ---><JAVA_HOME>/jre/lib/i386/
5) Копия librxtxParallel.so ---><JAVA_HOME>/jre/lib/i386/

-1
%JAVA_HOME%/lib 
%JAVA_HOME%/jre/lib/ext  

win32com.dll должен быть помещены в:

%JAVA_HOME%/bin 
%JAVA_HOME%/jre/bin 
%windir%System32 

javax.comm.properties должны быть помещены в:

%JAVA_HOME%/lib 
%JAVA_HOME%/jre/lib //this work out for me by sann seun 
+1

Добавьте описание вашего ответа. –

-2

comm.jar должны быть помещены в:

%JAVA_HOME%/lib 
%JAVA_HOME%/jre/lib/ext 

win32com.длл должна быть помещена в:

%JAVA_HOME%/bin 
%JAVA_HOME%/jre/bin 
%windir%System32 

javax.comm.properties должен быть помещен в:

%JAVA_HOME%/lib 
%JAVA_HOME%/jre/lib //this work out for me by sanni seun