2012-11-14 14 views
7

Diese Frage ergibt sich aus einem Problem, das wir hier haben, und wir suchen nach einem Weg, es zu lösen. Wir haben eine wirklich alte Maschine (mit DOS 6.22), die mit einer in Java geschriebenen seriellen Anwendung kommunizieren muss. Aber wir haben weder eine C/C++ ereignisbasierte RS232-Bibliothek gefunden, um das Programm für die DOS-Maschine (noch) zu implementieren, noch ein bereits kompiliertes Programm, um diese Aufgabe zu erledigen. Aber da wir bereits ein funktionierendes Java-Event-basiertes rs232-Programm haben, haben wir uns gefragt, ob es möglich ist, es zu kompilieren und eine .exe daraus zu machen, um es auf dem alten Rechner zu installieren.Ist es möglich, Java-Anwendungen in DOS 6.22 auszuführen?

Das wäre wenn möglich ein einfacher Weg aus dem Problem, aber wenn es nicht ist, gibt es irgendwelche RS232-Bibliotheken, um das Programm für unsere alte Maschine zu bauen? Danke im Voraus.

+0

Ich fand eine Website durch Eingabe von "DOS 6.22 seriellen Port" in Google: http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programming –

+10

Ich frage mich, wie viele Disketten Sie Java auf DOS installieren müssen :) – irreputable

+0

Nicht hier gefunden: http://www.oracle.com/technetwork/java/javase/config-417990.html – PiotrNycz

Antwort

3

Linux gcj kann Java-Programme in ausführbaren Code kompilieren, der ohne VM ausgeführt wird. So können Sie mit GCJ auf einem Linux-Computer eine EXE für DOS kompilieren und erstellen. Siehe http://gcc.gnu.org/java. Und für die Liste der unterstützten Plattformen siehe http://gcc.gnu.org/install/specific.html, wäre DOS der siebte Punkt in der Liste.

Das sagte, ich glaube nicht, dass Sie Java-basierte RS232-Bibliothek wird funktionieren, auch wenn der Rest des Programms funktioniert, und Sie werden alle Arten von anderen Einschränkungen haben Java wird nicht einfach leben mit , wie das berühmte 640K Speicherlimit, das Sie in der Praxis näher an 440K auf tatsächlichen Systemen finden.

Eine weitere Komplikation, die Sie bei ereignisbasierter Programmierung finden, ist, dass DOS ein Singlethread ist. Sie können daher keine andere Form der ereignisbasierten Programmierung verwenden, außer kooperativem Multitasking. Das ist nicht schwer, aber sei dir dessen bewusst.

In DOS werden Sie im Wesentlichen einen seriellen Gerätetreiber für die Kommunikation mit der seriellen Schnittstelle schreiben, wie einen Betriebssystemtreiber, die Register einstellen und Datenübertragungen so starten, wie es ein Char-Treiber in Linux tun würde. Es gibt ein Wikibook zum Thema, das bei http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programming ziemlich informativ ist.

Verwandte Themen