| JPS(1) | JDK Commands | JPS(1) |
نام (NAME)
jps - فهرست کردن JVMهای ابزاربندیشده روی سیستم مقصد
خلاصه دستور (SYNOPSIS)
نکته: این دستور آزمایشی است و پشتیبانی نمیشود.
jps [-q] [-mlvV] [hostid]
jps [-help]
گزینهها (OPTIONS)
- -q
- از نمایش نام کلاس، نام فایل JAR و آرگومانهای ارسالشده به متد main جلوگیری میکند و تنها فهرستی از شناسههای محلی JVM تولید مینماید.
- -mlvV
- میتوانید هر ترکیبی از این گزینهها را مشخص کنید.
- -m آرگومانهای ارسالشده به متد main را نمایش میدهد. خروجی ممکن است برای JVMهای تعبیهشده (embedded) برابر با null باشد.
- -l نام کامل بسته (package) را برای کلاس main برنامه یا مسیر کامل فایل JAR برنامه نمایش میدهد.
- -v آرگومانهای ارسالشده به JVM را نمایش میدهد.
- -V از نمایش نام کلاس، نام فایل JAR و آرگومانهای ارسالشده به متد main جلوگیری میکند و تنها فهرستی از شناسههای محلی JVM تولید مینماید.
توضیحات (DESCRIPTION)
دستور jps ماشینهای مجازی Java HotSpot ابزاربندیشده روی سیستم مقصد را فهرست میکند. این دستور محدود به گزارش اطلاعات دربارهٔ JVMهایی است که مجوز دسترسی به آنها را دارد.
اگر دستور jps بدون مشخص کردن hostid اجرا شود، به دنبال JVMهای ابزاربندیشده روی میزبان محلی میگردد. اگر همراه با یک hostid آغاز شود، با استفاده از پروتکل و پورت مشخصشده، به دنبال JVMها روی میزبان تعیینشده میگردد. فرض بر این است که یک فرآیند jstatd روی میزبان مقصد در حال اجراست.
دستور jps شناسه محلی JVM یا همان lvmid را برای هر JVM ابزاربندیشده که روی سیستم مقصد پیدا شده است، گزارش میدهد. lvmid معمولاً، اما نه لزوماً، شناسه فرآیند سیستمعامل برای فرآیند JVM است. بدون هیچ گزینهای، دستور jps شناسهٔ lvmid هر برنامه جاوا را به همراه شکل کوتاه نام کلاس یا نام فایل jar برنامه فهرست میکند. شکل کوتاه نام کلاس یا نام فایل JAR، اطلاعات بستهٔ (package) کلاس یا اطلاعات مسیر فایل JAR را حذف میکند.
دستور jps از راهانداز جاوا (Java launcher) برای یافتن نام کلاس و آرگومانهای ارسالشده به متد main استفاده میکند. اگر JVM مقصد با یک راهانداز سفارشی راهاندازی شده باشد، نام کلاس یا فایل JAR و آرگومانهای متد main در دسترس نخواهند بود. در این حالت، دستور jps رشتهٔ Unknown را برای نام کلاس یا نام فایل JAR و برای آرگومانهای متد main خروجی میدهد.
فهرست JVMهای ارائهشده توسط دستور jps میتواند توسط مجوزهای اعطاشده به کاربری که دستور را اجرا میکند، محدود شود. این دستور تنها JVMهایی را فهرست میکند که کاربر طبق سازوکارهای کنترل دسترسی مختص سیستمعامل، حق دسترسی به آنها را داشته باشد.
شناسه میزبان (HOST IDENTIFIER)
شناسه میزبان یا hostid، رشتهای است که سیستم مقصد را مشخص میکند. نحو (syntax) رشتهٔ hostid با نحو یک URI مطابقت دارد:
[protocol:][[//]hostname][:port][/servername]
- protocol
- پروتکل ارتباطی. اگر protocol حذف شود و hostname مشخص نشده باشد، پروتکل پیشفرض یک پروتکل محلی بهینهسازیشده و مختص پلتفرم است. اگر پروتکل حذف شود و یک نام میزبان مشخص شده باشد، پروتکل پیشفرض rmi خواهد بود.
- hostname
- یک نام میزبان یا نشانی IP که میزبان مقصد را نشان میدهد. اگر پارامتر hostname را حذف کنید، میزبان مقصد همان میزبان محلی در نظر گرفته میشود.
- port
- پورت پیشفرض برای برقراری ارتباط با کارگزار دوردست. اگر پارامتر hostname حذف شود یا پارامتر protocol یک پروتکل محلی بهینهسازیشده را مشخص کند، پارامتر port نادیده گرفته میشود. در غیر این صورت، نحوهٔ برخورد با پارامتر port وابسته به پیادهسازی است. برای پروتکل پیشفرض rmi، پارامتر port شماره پورت برای rmiregistry روی میزبان دوردست را نشان میدهد. اگر پارامتر port حذف شود و پارامتر protocol نشاندهندهٔ rmi باشد، پورت پیشفرض rmiregistry (1099) استفاده میشود.
- servername
- برخورد با این پارامتر به پیادهسازی بستگی دارد. برای پروتکل محلی بهینهسازیشده، این فیلد نادیده گرفته میشود. برای پروتکل rmi، این پارامتر رشتهای است که نام شیء دوردست RMI روی میزبان دوردست را نشان میدهد. گزینهٔ -n از دستور jstatd را ببینید.
قالب خروجی دستور JPS (OUTPUT FORMAT OF THE JPS COMMAND)
خروجی دستور jps از الگوی زیر پیروی میکند:
lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
همه نشانههای خروجی با فاصله (white space) جدا میشوند. یک مقدار arg که شامل فاصله در درون خود باشد، هنگام تلاش برای نگاشت آرگومانها به پارامترهای مکانی واقعی آنها، ابهام ایجاد میکند.
نکته:
توصیه میشود اسکریپتهایی برای تجزیهٔ خروجی jps ننویسید، زیرا این قالب ممکن است در نسخههای بعدی تغییر کند. اگر اسکریپتهایی مینویسید که خروجی jps را تجزیه میکنند، انتظار داشته باشید که برای نسخههای بعدی این ابزار مجبور به اصلاح آنها شوید.
مثالها (EXAMPLES)
این بخش مثالهایی از دستور jps را ارائه میدهد.
فهرست کردن JVMهای ابزاربندیشده روی میزبان محلی:
-
jps 18027 Java2Demo.JAR 18032 jps 18005 jstat
مثال زیر JVMهای ابزاربندیشده روی یک میزبان دوردست را فهرست میکند. این مثال فرض میکند که کارگزار jstat و رجیستری داخلی RMI آن یا یک فرآیند مجزای خارجی rmiregistry روی میزبان دوردست و روی پورت پیشفرض (پورت 1099) در حال اجرا هستند. همچنین فرض میکند که میزبان محلی مجوزهای مناسب برای دسترسی به میزبان دوردست را داراست. این مثال شامل گزینهٔ -l است تا شکل کامل نام کلاسها یا نامهای فایل JAR را خروجی دهد.
-
jps -l remote.domain 3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR 2857 sun.tools.jstatd.jstatd
مثال زیر JVMهای ابزاربندیشده روی یک میزبان دوردست با پورتی غیرپیشفرض برای رجیستری RMI را فهرست میکند. این مثال فرض میکند که کارگزار jstatd همراه با یک رجیستری داخلی RMI که به پورت 2002 متصل شده است، روی میزبان دوردست در حال اجراست. این مثال همچنین از گزینهٔ -m برای گنجاندن آرگومانهای ارسالشده به متد main هر یک از برنامههای جاوای فهرستشده استفاده میکند.
-
jps -m remote.domain:2002 3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR 3102 sun.tools.jstatd.jstatd -p 2002
| 2026 | JDK 25.0.4.1 |