プログラムがシリアルポート経由でハードウェアと通信するのを助けるためにjavax.comm APIを使用しています。 Windows 7とNetBeansを使用していますIDE 9。
一般的なJavaプログラムを使用して、PCで使用可能なポートを確認しました。プログラムはコンパイルされ、エラーなしで実行されましたが、何も返されませんでした。
Windowsでjavax.comm APIを使用するにはどうすればよいですか? win32com.dllは64ビットオペレーティングシステムでは動作しないようです。
これは私がそれを機能させた方法です。
Windows 7 64ビットマシンでJDK 1.6(32ビット)を使用してテストしました。
ここでプログラムを実行すると、動作するはずです。
RXTXの最近の2.2preバージョンには、64ビットウィンドウのバイナリが含まれています。 Ithink最新のRXTX情報ソースがこれに変更されました: http://rxtx.qbang.org の代わりに- http://www.rxtx.org ですが。
ある時点で、RXTXライブラリには、javax.comm apiを使用するためのドロップインサポートが含まれていました。まだ機能するかどうかはわかりませんが、「ネイティブ」のRXTXパッケージを使用するための主な変更は、主にパッケージ名の変更のみでした。
win32com.dllが64ビットオペレーティングシステムで動作しないようです
それは正しいと思います。実際、関連するダウンロードページによると、Oracleはsupportsjavax.comm
API for any Windowsプラットフォームではなくなりました。
しかし、とりわけ、64ビットビルドのDLLがある このページ を見つけました。
[〜#〜]編集[〜#〜]
驚異的な研究(つまり、リンクをたどって資料を読む)により、最新のRXTXの ダウンロードページ が見つかりました。これは、さまざまなプラットフォーム用のバイナリがあると主張しています。プラットフォームがない場合は、ソースからビルドしてみてください。それがうまくいかない場合は、それを機能させるための努力に投資することを検討してください。
以前のプロジェクトのいくつかにRXTXライブラリを統合しましたが、Windowsの通信ポートでの作業中にこのバグがあることを発見したので、本格的なアプリの設計に入る前にまずこれを確認することをお勧めします。通信は正常に機能し、問題はありませんでしたが、一度ポートを開くと、ポートを閉じて再度開くことはできません。ポートを閉じるために提供されたメソッドを使用すると、アプリはハングアップし、例外はありません。後でユーザーがWebで説明したのと同じ動作が見つかりましたが、この問題の解決策は実際には見つかりませんでした。繰り返しますが、これは時間を節約するのに役立ちます。まず確認してください。
最新リリースである http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.Zip では、この問題はなくなりました。残念ながら、私はそれがWindowsでのみ解決されたと思いますが、それでもLinuxバイナリには存在し、Macではまだ試していません。
私はこの問題を抱えていました... 64ビットマシンで..Windows 7を実行しています
32ビットウィンドウ用のjdk 1.4で開発されたレガシーアプリケーション...およびwin32 comm apiバイナリを使用
64ビットのRXTXバイナリを試してみましたが、ある程度のレベルでデバイスと通信できました...しかし...アプリケーションが内部的にcomm-api(一部のSerial ... Listenerクラスにjavax.comm。* ...をインポートしました)...
32ビットjdkをインストールし、ここで指示されているように、32ビットウィンドウのcomm-apiバイナリをセットアップしました... windowsにcomm apiをセットアップしました
その後はすべて大丈夫でした
[〜#〜] rxtx [〜#〜] を見てみましたか?まだ活発だと思います。
私が作成した別のライブラリに興味があるかもしれません: http://code.google.com/p/jperipheral/