Запустить 16-битную программу на 64-битном компьютере без DOSBox
Существует ли программа, которую вы можете ввести в командную строку или на терминал с набором параметров для запуска 16-битной программы? Например: "run16 bit program.exe 'path/to/program/test.exe'" и просто выведите все, что программа делает в консоли.
Если есть такие программы, я бы хотел, чтобы они были кроссплатформенными, если это возможно.
Вот пример изображения DOSBox, выполненного из Java:
Вот файл конфигурации:
Вот код из Java (ProcessBuilder даже не открыл DOSBox):
Runtime.getRuntime().exec(new String[] { "C:/Program Files (x86)/DOSBox-0.74/DOSBox", "-conf \"C:/Users/Braden Steffaniak/Documents/GitHub/Workspace/ArrowIDE/res/assembly/new.conf\"", "-noconsole" });
Команда -noconsole работает, но если я добавлю какие-либо параметры -c, она ничего не сделает.
Если я наберу команду в командной строке, она будет работать так, как я ожидаю.
2 ответа
Это определенно невозможно в Windows, см. Следующую статью MSDN: http://support.microsoft.com/kb/896458
Любой инструмент, который позволит вам запустить 16-битную прогу в 64-битной системе Windows, должен эмулировать систему, что и делает DOSbox.
Следующие работы:
public class DosBoxCaller {
public static void main(String[] args) {
ProcessBuilder pb = new ProcessBuilder(
"C:\\Program Files\\DOSBox-0.74\\DOSBox.exe",
"-conf C:\\Users\\Y\\dosbox.conf");
pb.directory(new File("C:\\Users\\Y"));
pb.redirectErrorStream(true);
try {
Process p = pb.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Если это не вызывает DOSBox для вас, то вы, вероятно, ошибаетесь в пути и просто игнорируете выбрасываемое исключение. Также дважды проверьте, что ваш параметр conf действителен, и используйте измененную копию полной конфигурации dosbox (ее можно найти в папке пользователя \Application Data\Local\DosBox, скопируйте ее в свою любимую папку, затем отредактируйте autoexec).
В Windows x64 есть эмулятор, который может запускать простые программы для командной строки DOS. Он называется "MS-DOS Player для Win32-x64". Источник предоставлен, поэтому теоретически вы можете реализовать недостающие функциональные возможности.