26 Şubat 2020 Çarşamba

jps komutu - Çalışan Java Uygulamaları Listelenir

Giriş
Bu araç ile aynı linux'taki ps komutu gibi çalışan java uygulamaları görülebilir.

Bu araç JDK ile geliyor. Örneğin benim bilgisayarımda "C:\Program Files (x86)\Java\jdk1.7.0_02\bin" dizini altında bulunuyor. 

Söz dizimi şöyle
jps [options] [hostid]
Açıklaması şöyle
If no hostid is specified, it defaults to the current host or server.
Örnek

Şöyle yaparız ve çıktı olarak şunu alırız
jps

624 startup.jar
3508 startup.jar
3348 Jps
2444 CruiseControlWithJetty
İlk sütun PID numarasıdır. İkinci sütun varsa uygulamanın ismidir. 

JPS Nasıl Çalışır?
Java uygulamaları kendi bilgilerini bir çeşit tmp dizinine yazıyorlar. jps de bu dizini okuyor. Açıklaması şöyle.
It turns out that java uses a temporary directory on linux in /tmp/hsperfdata_{username} and jps uses this temporary directory to find java processes.
-l seçeneği
main sınıfın fully qualified ismini gösterir. Açıklaması şöyle.
jps -l command outputs the full package name for the application's main class or the full path name to the application's JAR file.
Örnek
Şöyle yaparız.
path\to\jdk\bin\jps -m -l -v
-m seçeneği
 main metoda geçen parametreleri gösterir. Açıklaması şöyle. Bu seçenek yerine "jinfo -flags" komutu da kullanılabilir
jps -m command outputs the arguments passed to the main method.
Örnek
Şöyle yaparız. Burada -l kullanıldığı için fully qualified main sınıf ismi de gösteriliyor.
# jps -m -l
2458 org.artifactory.standalone.main.Main /usr/local/artifactory-2.2.5/etc/jetty.xml
29920 com.sun.tools.hat.Main -port 9998 /tmp/dump.dat
3149 org.apache.catalina.startup.Bootstrap start
30972 sun.tools.jps.Jps -m -l
8247 org.apache.catalina.startup.Bootstrap start
25687 com.sun.tools.hat.Main -port 9999 dump.dat
21711 mrf-center.jar
Örnek
Bir tane java uygulamasını bat dosyasından şöyle başlatalım
@echo off
TITLE MyApp
"%JAVA_HOME%\jre\bin\java.exe" - classpath bin MyMain
Pencereyi öldürmek için şöyle yaparız
taskkill /F /FI "WindowTitle eq MyApp" /T
Ancak kullanıcı pencereyi Ctrl+C yerine çarpı düğmesi ile de kapatabilir. Bu durumda java uygulaması çalışmaya devam eder. Onu da öldürmek için komut satırında şöyle yaparız.
for /f "tokens=1" %i in ('jps -m |find "MyMain"') do (taskkill /F /PID %i /T)
- jps komutu '...' yani normal tek tırnak içinde çalışıyor.
- find komutuna verilen parametre çift tırnak içinde
- Eğer bu satırı bat dosyasına taşımak istersek %i yerine %%i kullanmak gerekir.

-q seçeneği
Açıklama yaz

-v seçeneği
Şöyle yaparız
jps -lvm

Hiç yorum yok:

Yorum Gönder