Есть ли программа, которую вы можете ввести в командную строку или в терминал с набором параметров для запуска 16-битной программы? Например: "run16bitprogram.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 ответа2

1

Это определенно невозможно в 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).

0

В Windows x64 есть эмулятор, который может запускать простые программы для командной строки DOS. Он называется «MS-DOS Player для Win32-x64». Источник предоставлен, поэтому теоретически вы можете реализовать недостающие функциональные возможности.

http://homepage3.nifty.com/takeda-toshiya/msdos/index.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .