2013-04-11 5 views
5

Java Communication API javax.commを使用してシリアルポート経由で通信する単純なアプリケーションを構築しています。ここでCommPortIdentifier.getPortIdentifiersが空です

は私が書いた私の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ポートに接続されていていても常に空です。また

、このコードを実行:

NoSuchPortException

のスロー原因

portRead = CommPortIdentifier.getPortIdentifier("COM8"); 

私は私が正しくインストール一部を行っていると思うし、プロパティを置いファイル、右の場所でwin32com.dllファイルを。

問題の原因を知っていますか?

答えて

3

はwin32com.dll(javax.comが付属していますが)、jre \ binディレクトリにあることを確認してくださいありがとうございました。 javax.comm.properties(javax.comに付属)がjdk \ libディレクトリにあることを確認してください。

-1

お使いのデバイスが動作しているポート(すべてのCOMポートがlinkを試す見つけるために、パワーシェルまたはハイパーターミナルを試してみてください)

+2

なお、リンクだけの答えが推奨され、SOの答えは、解の探索のエンドポイントでなければなりません(対まだ時間をかけて古い取得する傾向があるの参照、別の途中降機)。リンクを参考にして、ここにスタンドアロンの概要を追加することを検討してください。 – kleopatra

5

はあなたがjavax.comm.zipからJREにすべて解凍したファイルを追加する必要があり、常に忘れないでください検索

win32com.dll - JRE/binに

comm.jar - JRE/libに/ extに

java.comm.properties - JRE/libに(これを追加した後、私は解決例外の問題を発見した)