Запустите CMD с помощью ProcessBuilder
Я пытаюсь запустить приложение CMD в windows, используя следующий код, но он работает не так, как ожидалось. Несколько примеров из разных веб-сайтов показывают, что "cmd" в качестве аргумента в конструкции ProcessBuilder должен работать.
что мне нужно сделать, чтобы мое приложение Java открыло приложение CMD в windows?
public class JavaTest
{
public static void main(String[] args)
{
ProcessBuilder pb = new ProcessBuilder("cmd");
try
{
pb.start();
System.out.println("cmd started");
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
}
}
когда я пытаюсь использовать несуществующее приложение, оно фактически печатает ошибку, поэтому это означает, что оно фактически запускает "CMD". Но CMD приложение не появляется, как ожидалось?
2 ответов
вам нужно использовать старт. На самом деле, даже я не вижу новой командной строки, но вы можете проверить, что новый cmd.exe
определенно начал использовать свой task manager
.
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start");
хотя, та же функциональность может быть достигнута с помощью Runtime.exec()
, и на самом деле появляется новая командная строка.
Runtime.getRuntime().exec("cmd.exe /C start");
чтобы использовать его с ProcessBuilder вы должны разделить команды такой:
final List<String> commands = new ArrayList<String>();
commands.add("cmd.exe");
commands.add("/C");
commands.add("start");
ProcessBuilder pb = new ProcessBuilder(commands);
pb.start();