2012-11-14 147 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有很多信息。

相关问题