Подтвердить что ты не робот

Зная, какой процесс java.exe убить на машине Windows

Когда приложение на основе java начинает плохо себя вести на компьютере с Windows, вы хотите, чтобы он мог убить процесс в диспетчере задач, если вы не можете выйти из приложения в обычном режиме. В большинстве случаев на моей машине работает более одного приложения на основе Java. Есть ли лучший способ, чем просто случайное уничтожение процессов java.exe в надежде, что вы в конце концов ударите нужное приложение?

EDIT: Спасибо всем людям, которые указали мне на Sysinternal Process Explorer - именно то, что я ищу!

4b9b3361

Ответ 1

Загрузите Sysinternal Process Explorer. Это диспетчер задач гораздо более мощный, чем собственный менеджер Windows.

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

Ответ 2

Запустите jps -lv, который показывает PID и командные строки всех запущенных Java-процессов.

Определите PID задачи, которую вы хотите убить. Затем используйте команду:

taskkill /PID <pid>

чтобы убить неверный процесс.

Ответ 3

Если вы не можете запустить GUI-приложение, такое как ProcessExplorer, и вы ищете аргументы "Командная строка" для процессов, вы можете использовать "wmic" через командную строку. Например:

wmic PROCESS get Processid,Caption,Commandline

Если вы хотите найти конкретный процесс, вы можете сделать это:

wmic PROCESS where "name like '%java%'" get Processid,Caption,Commandline

В результате этого будут показаны все аргументы командной строки процессов, таких как "java".

Ответ 4

Использование jps в JDK даст вам больше информации. Дополнительная информация отображается с параметрами -m, -l и -v.

Ответ 5

Вы пытались использовать Process Explorer из SysInternals? Это дает гораздо лучшее представление о том, что работает в процессе. Здесь можно бесплатно скачать онлайн: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Ответ 6

Если вы используете Java 6, попробуйте jvisualvm из каталога bin JDK.

Ответ 7

Вы можете попробовать открыть Диспетчер задач Windows, перейдя на вкладку "Приложения", щелкнув правой кнопкой мыши приложение и выбрав "Перейти к процессу". Это автоматически выделит соответствующий процесс на вкладке "Процессы".

Ответ 8

Если вы разрабатываете программное обеспечение: используйте java-пусковую установку. Я использовал несколько моих приложений [Exe4j] [http://www.ej-technologies.com/products/exe4j/overview.html], и он работал очень хорошо. Когда приложение запускается, оно отображается как, например, "myserverapp.exe" или "myapp" в диспетчере задач Windows. Есть и другие lauchers (не знают их наизусть), некоторые из них также могут быть бесплатными.

Ответ 9

Я бы предложил загрузить Process Explorer из Sysinternals и посмотреть на несколько процессов java.exe более подробно, таким образом вы можете получить лучшее представление о том, что убить.

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Это очень интуитивно понятно, и вы можете найти процессы java.exe и щелкнуть правой кнопкой мыши и перейти к их свойствам, оттуда вы увидите их командную строку, время создания и т.д., которые помогут вам найти процесс, который вы хотите убить.

Надеюсь, что это поможет.

Ответ 10

Используя ProcessExplorer и зависающий над процессом Java, отобразится командная строка.

Ответ 11

Если приложение вообще не отвечает, то Process Explorer - хороший вариант.

Если он реагирует, но не умирает, иногда воспитывает диспетчер задач, а затем перемещает другое диалоговое окно над процессом java, вы получите подсказку. Процесс java, который обрабатывает циклы процессора для перерисовки, - это тот, который вы ищете.

Ответ 12

Вместо использования стороннего инструмента вы также можете сделать довольно неплохое предположение, просмотрев все столбцы в диспетчере задач, если вы знаете, что представляют собой различные процессы Java в вашей системе. На вкладке Процессы используйте View- > Select Columns и добавьте PID, CPU Time, VM Size и Thread count. Знание того, что делает этот процесс, должно помочь сузить его.

Например, в клиент-серверном приложении сервер, скорее всего, будет использовать больше памяти, иметь больше потоков и использовать больше времени процессора, потому что он работает дольше. Если вы убиваете процесс, потому что он застрял, он может просто использовать больше процессора прямо сейчас.

MAX java heap memory обычно непосредственно отражается в размере VM. Поэтому, если вы используете флаги -Xmx, процесс с более крупным параметром будет иметь больший размер виртуальной машины.