2012-11-14 192 views
7

這個問題來自我們在這裏遇到的一個問題,我們正在尋找一種解決方法。我們有一臺真正的舊機器(運行DOS 6.22),需要與用Java編寫的串行應用程序進行通信。但是我們既沒有找到基於C/C++事件的rs232庫來實現DOS機器的程序,也沒有找到一個已經編譯好的程序來完成這項工作。但是由於我們已經有了一個基於rs232的工作的基於事件的程序,我們想知道是否可以編譯它,並將.exe從其中安裝到舊機器中。是否有可能在DOS 6.22中運行Java應用程序?

這將是一個討巧如果可能的問題,但如果它不是,是否有任何RS232庫來構建我們的老機器上的程序?提前致謝。

+0

我通過在Google中輸入「DOS 6.22 serial port」找到了一個網站: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程序到,如果沒有一個虛擬機運行可執行代碼。所以你可以在Linux機器上使用gcj來交叉編譯併爲DOS創建一個.EXE。見http://gcc.gnu.org/java。對於它支持的平臺列表,請參見http://gcc.gnu.org/install/specific.html,DOS將成爲列表中的第7項。

這就是說,我不認爲你是基於java的rs232庫即將工作,即使程序的其他部分能夠正常工作,你也會遇到各種其他的限制, ,就像着名的640K內存限制一樣,在實際系統中您會發現實際接近440K。

你會基於事件的編程找到另一個複雜問題是,DOS是單線程的。所以除了協作式多任務以外,你不能輕易使用任何形式的基於事件的編程。這並不難,但要注意它。

在DOS你基本上可以寫一個串行設備驅動程序與串行端口進行通信,就像一個操作系統的驅動程序,設置寄存器和啓動數據傳送一個字符驅動程序可以做它在Linux的方式。這個主題上有一個維基書籍,在http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programming有很多信息。

相關問題