Как предотвратить выполнение команд Linux в Java в отдельном процессе?

1

Я разрабатываю приложение для фильтрации logcat, сгенерированного андроидом. Я выполнил linux comand '/system/bin/logcat -b main -f/sdcard/logcat.txt'using getruntme.exec. для выполнения команды, но она выполняется в отдельном процессе, хотя я удаляю свое приложение, процесс продолжает работать. Есть ли способ предотвратить запуск в другом процессе.

Теги:
process

2 ответа

1
Лучший ответ

По getruntme.exec, вы имеете в виду, что вы используете что-то вроде этого? (заимствованный отсюда):

import java.io.*;
public class TestExec {
    public static void main(String[] args) {
        try {
            Process p = Runtime.getRuntime().exec("cmd /C dir");
            BufferedReader in = new BufferedReader(
                                new InputStreamReader(p.getInputStream()));
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Тогда вы можете убить его с помощью p.destroy()

0

Нет. exec запускает новый процесс, и это то, что он должен делать, и что вы хотите сделать, если вы запускаете внешнюю команду. Но он возвращает объект Process который вы можете использовать для управления запущенным процессом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню