Пример в этой статье описывает, как Java выполняет команды Linux. Поделитесь этим со всеми для справки. Конкретный метод реализации заключается в следующем:
Скопируйте код кода следующим образом:
публичный класс StreamGobbler расширяет поток {
Входной поток есть;
Строковый тип;
public StreamGobbler (InputStream, тип String) {
this.is = есть;
this.type = тип;
}
общественный недействительный запуск () {
пытаться {
InputStreamReader isr = новый InputStreamReader (is);
BufferedReader br = новый BufferedReader (ISR);
Строковая линия = ноль;
while ((line = br.readLine()) != null) {
если (type.equals("Ошибка")) {
System.out.println("Ошибка:" + строка);
} еще {
System.out.println("Отладка:" + строка);
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
частная оболочка void (String cmd)
{
String[] cmds = { "/bin/sh", "-c", cmd };
Процесс процесса;
пытаться
{
процесс = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = новый StreamGobbler(process.getErrorStream(), «Ошибка»);
StreamGobbler outputGobbler = новый StreamGobbler(process.getInputStream(), "Выход");
ошибкаGobbler.start();
выводGobbler.start();
пытаться
{
процесс.waitFor();
}
улов (InterruptedException e)
{
е.printStackTrace();
}
}
улов (IOException e)
{
е.printStackTrace();
}
}
Параметр cmd — это команда Linux. Одновременно может выполняться только одна команда.
1. Примечания к Java Runtime.exec():
① Всегда читайте поток данных перед вызовом метода waitFor() ② Всегда сначала читайте из стандартного потока ошибок, а затем читайте стандартный поток вывода
2. Лучший способ выполнения системных команд — написать bat-файл или скрипт оболочки.
Я надеюсь, что эта статья будет полезна каждому, кто занимается программированием на Java.