Как вывести список запущенных JAR-файлов в Windows, используя Java? - PullRequest
0 голосов
/ 28 июня 2010

Я занимаюсь разработкой простого консольного приложения с использованием Java. Я хочу отобразить запущенные файлы JAR в моей системе. Следующий код отображает окно всех запущенных процессов.

try {


        String cmds[] = { "cmd", "/c", "tasklist" };
        Process myProcess = Runtime.getRuntime().exec(cmds);
        BufferedReader stdout = new BufferedReader(new InputStreamReader(
                myProcess.getInputStream()));
        String line = stdout.readLine();
        File file = new File("writer.txt");
        writer = new BufferedWriter(new FileWriter(file));
        while (line != null) {
            writer.write(line);
            writer.write("\n");
            System.out.println(line);
            line = stdout.readLine();
        }
        writer.close();


    } catch (Exception e) {// Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }  

Я использовал

`String cmds[] = { "cmd", "/c", "jps" };`  

Но процесс не отображается. Пожалуйста, кто-нибудь дать предложения. Спасибо заранее.

1 Ответ

2 голосов
/ 28 июня 2010

Единственное, что вы на самом деле можете видеть, это запуск виртуальных машин java, но операционная система не может видеть, какие потоки выполняются внутри jvms.

Файл 'jar' не является исполняемым файлом.Это не что иное, как библиотека java с дополнительной записью в манифесте библиотек, которая называет один класс методами main.Поэтому, если вы запускаете java с опцией jar и пропускаете такой jar, виртуальная машина будет использовать этот метод для запуска основного потока.

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

Для jps:

Если jps запускается без указания хоста, он будет искать инструментальные JVM на локальном хосте.

и

Эта утилита не поддерживается и может быть недоступна в будущих версиях JDK.В настоящее время он недоступен на платформах Windows 98 и Windows ME.

Так что, если виртуальная машина не оснащена инструментами, jps ничего не сообщит (и я сомневаюсь, что она может перечислить файлы jarна пути к классам или которые использовались для загрузки классов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...