Как узнать, какая программа работает в java [duplicate]

И если вам нужно, чтобы это было нечувствительным к регистру, вы должны использовать регулярное выражение следующим образом:

new RegExp(".*"+keyword+".*", "i")
44
задан Peter 15 September 2008 в 14:21
поделиться

12 ответов

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

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

32
ответ дан Ricardo Reyes 17 August 2018 в 16:01
поделиться
  • 1
    Process Explorer также может показать вам команду, которая запустила процесс java.exe. Обычно это будет содержать имя файла jar или имя класса. – Jay R. 16 September 2008 в 23:41
  • 2
    Есть ли аналогичный инструмент для Linux (Ubuntu)? – Ivan 14 November 2015 в 23:05
  • 3
    @Ivan Я думаю, что htop может выполнить эту работу. – Melebius 7 November 2016 в 08:55

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

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

taskkill /PID <pid>

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

53
ответ дан Arpit 17 August 2018 в 16:01
поделиться
  • 1
    Убейте эту команду вместо необходимости taskkill: jps -lv | найти "что-то" | WMIC PROCESS, где name = "java.exe" Удалить – djangofan 11 December 2012 в 01:39
  • 2
    Мне нравится этот ответ. К сожалению, хотя jps не распределяется с JRE , что является ограничением для того, где я хотел бы его использовать. – simo.37920 20 October 2014 в 03:41

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

6
ответ дан Bill Michell 17 August 2018 в 16:01
поделиться

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

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

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

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

1
ответ дан Henry B 17 August 2018 в 16:01
поделиться

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

wmic PROCESS get Processid,Caption,Commandline

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

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

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

30
ответ дан Jesse 17 August 2018 в 16:01
поделиться
  • 1
    Это лучший способ сделать это, поскольку вы можете использовать «FIND.exe». чтобы отфильтровать этот список, а затем передать его в "WMIC .... delete & quot; чтобы убить процесс. Это "чистый" без каких-либо внешних программ. – djangofan 11 December 2012 в 01:37
  • 2
    Вывод можно сделать более читаемым, используя флаг /format:list (например, когда Commandline длинный). – anishpatel 16 May 2017 в 22:52

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

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

1
ответ дан Mikezx6r 17 August 2018 в 16:01
поделиться

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

6
ответ дан Raithlin 17 August 2018 в 16:01
поделиться

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

4
ответ дан snafu109 17 August 2018 в 16:01
поделиться

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

7
ответ дан Tom Hawtin - tackline 17 August 2018 в 16:01
поделиться
  • 1
    jps отлично. Это решение позволит вам убить соответствующие процессы Java в сценарии, который Process Explorer не будет. – Dave Webb 12 June 2009 в 15:19

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

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

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

1
ответ дан TREE 17 August 2018 в 16:01
поделиться

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

2
ответ дан user 17 August 2018 в 16:01
поделиться

Использование ProcessExplorer и зависание над процессом Java покажет командную строку.

1
ответ дан user6837 17 August 2018 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: