2012-11-14 3 views
7

この質問は私たちがここで問題が発生したために解決する方法を探しています。私たちは、Javaで書かれたシリアルアプリケーションと通信する必要がある、本当に古いマシン(DOS 6.22を実行しています)を持っています。しかし、DOSマシン用のプログラムを実装するためのC/C++イベントベースのrs232ライブラリ(まだ)も、このジョブを実行するためのコンパイル済みのプログラムも見つかりませんでした。しかし、私たちはすでにrs232プログラムに基づいたJavaイベントを既に持っているので、それをコンパイルして、それを古いマシンにインストールするために.exeを作ることが可能かどうか疑問に思っていました。DOS 6.22でJavaアプリケーションを実行できますか?

これは可能な限り簡単に問題から外れますが、そうでない場合は、古いマシン用のプログラムをビルドするためのrs232ライブラリがありますか?前もって感謝します。

+0

私はGoogleに「DOS 6.22シリアルポート」と入力してウェブサイトを見つけました:http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programming –

+10

dosにjavaをインストールするために必要なフロッピーディスクの数は不思議です:) – irreputable

+0

ここには見つかりません:http://www.oracle.com/technetwork/java/javase/config-417990.html – PiotrNycz

答えて

3

Linux gcjは、JavaプログラムをVMなしで実行可能な実行可能コードにコンパイルすることができます。したがって、Linuxマシンでgcjを使用してクロスコンパイルし、DOS用の.EXEを作成することができます。 http://gcc.gnu.org/javaを参照してください。それがサポートするプラットフォームの一覧についてはhttp://gcc.gnu.org/install/specific.html、DOSはリストの7番目の項目です。

これは、私はあなたがJavaベースのrs232ライブラリは動作しないと思いますが、プログラムの残りの部分が動作しても、あなたはJavaが簡単には生きていけないあらゆる種類の制限がありますこれは有名な640Kのメモリ制限のように、実際のシステムでは440Kに近いほどです。

イベントベースのプログラミングでは、もう1つの問題は、DOSがシングルスレッドであることです。したがって、協調マルチタスキングを除いて、イベントベースのプログラミングの形式を簡単に使用することはできません。これは難しいことではありませんが、それに注意してください。

DOSでは、オペレーティングシステムドライバのようなシリアルポートと通信するシリアルデバイスドライバを作成し、レジスタを設定し、charドライバがLinuxで行う方法と同じようにデータ転送を開始します。被験者には、http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programmingという非常に有益なウィキブックスがあります。

関連する問題