Как заставить runtime.exec () работать на нескольких ОС в Java? - PullRequest
0 голосов
/ 20 ноября 2011

Я вызываю исполнение во время выполнения в OSX, добавляя «/ bin / bash», «-c» перед командой, например:

Runtime runtime = Runtime.getRuntime();  
Process process = runtime.exec(new String[] { "/bin/bash", "-c", cmd });  

Я знаю, что это отличается для Windows и Linux.Как я могу убедиться, что моя команда времени выполнения работает на нескольких ОС?

Спасибо.

1 Ответ

2 голосов
/ 20 ноября 2011

Используйте что-то вроде:

    String osName = System.getProperty("os.name");
    if(osName.startsWith("Windows")) {
        // windows code
    } else {
        if(osName.startsWith("Linux") {
             // linux code
        } else {
             // mac code
        }
    }

Отказ от ответственности: это просто ориентация. Есть еще много угловых случаев (например, FreeBSD), которые необходимо протестировать, чтобы получить правильное поведение.

...