Est-il possible d'exécuter des applications java sous DOS 6.22?


Cette question provient d'un problème que nous avons ici, et nous cherchons un moyen de le résoudre. Nous avons une très vieille machine (exécutant DOS 6.22) qui doit communiquer avec une application série écrite en Java. Mais nous n'avons pas trouvé de bibliothèque rs232 basée sur les événements C/C++ pour implémenter le programme pour la machine DOS (encore), ni de programme déjà compilé pour faire ce travail. Mais comme nous avons déjà un programme rs232 basé sur des événements Java, nous nous demandions s'il est possible de le compiler et faites un .exe pour l'installer dans l'ancienne machine.

Ce serait un moyen facile de résoudre le problème si possible, mais si ce n'est pas le cas, existe-t-il des bibliothèques rs232 pour construire le programme pour notre ancienne machine? Merci à l'avance.

Author: Jose Ramirez, 2012-11-15

1 answers

Linux gcj est capable de compiler des programmes java en code exécutable qui s'exécute sans machine virtuelle. Vous pouvez donc utiliser gcj sur une machine Linux pour crosscompile et créer un .EXE pour DOS. Voir http://gcc.gnu.org/java. Et pour la liste des plates-formes qu'il prend en charge, voir http://gcc.gnu.org/install/specific.html , DOS serait le 7ème élément de la liste.

Cela dit, je ne pense pas que votre bibliothèque rs232 basée sur java fonctionnera, même si le reste du programme fonctionne, et vous avoir toutes sortes d'autres limitations Java ne vivra pas facilement avec, comme la fameuse limite de mémoire 640K, que vous trouverez dans la pratique plus proche de 440K sur les systèmes réels.

Une autre complication que vous trouverez avec la programmation basée sur les événements est que DOS est single threaded. Vous ne pouvez donc utiliser facilement aucune forme de programmation basée sur les événements, sauf le multitâche coopératif. Ce n'est pas difficile, mais soyez conscient de cela.

Dans DOS, vous allez essentiellement écrire un pilote de périphérique série pour communiquer avec le le port série, comme un pilote de système d'exploitation, définit les registres et lance les transferts de données comme le ferait un pilote char sous linux. Il y a un wikibook sur le sujet qui est assez instructif à http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programming .

 3
Author: christopher, 2012-11-14 23:21:21