JPS(1) JDK Commands JPS(1)

jps - فهرست کردن JVMهای ابزاردقیق‌شده روی سیستم مقصد

نکته: این دستور آزمایشی است و پشتیبانی نمی‌شود.

jps [-q] [-mlvV] [hostid]

jps [-help]

از نمایش خروجی نام کلاس، نام فایل JAR و آرگومان‌های ارسالی به متد main جلوگیری می‌کند و تنها فهرستی از شناسه‌های محلی JVM تولید می‌نماید.
می‌توانید هر ترکیبی از این گزینه‌ها را مشخص کنید.
•
-m آرگومان‌های ارسالی به متد main را نمایش می‌دهد. این خروجی برای JVMهای تعبیه‌شده (embedded) ممکن است null باشد.
•
-l نام کامل بسته (package) را برای کلاس main برنامه یا مسیر کامل فایل JAR برنامه نمایش می‌دهد.
•
-v آرگومان‌های ارسالی به JVM را نمایش می‌دهد.
•
-V از نمایش خروجی نام کلاس، نام فایل JAR و آرگومان‌های ارسالی به متد main جلوگیری می‌کند و تنها فهرستی از شناسه‌های محلی JVM تولید می‌نماید.
شناسهٔ میزبانی که گزارش فرایند باید برای آن تولید شود. مقدار hostid می‌تواند شامل بخش‌های اختیاری باشد که پروتکل ارتباطی، شماره پورت و سایر داده‌های مختص پیاده‌سازی را مشخص می‌کنند. بخش شناسه میزبان (HOST IDENTIFIER) را ببینید.
پیام راهنمای دستور jps را نمایش می‌دهد.

دستور jps ماشین‌های مجازی Java HotSpot ابزاردقیق‌شده روی سیستم مقصد را فهرست می‌کند. این دستور تنها به گزارش اطلاعات JVMهایی محدود می‌شود که مجوزهای دسترسی به آن‌ها را داشته باشد.

اگر دستور jps بدون تعیین یک hostid اجرا شود، به جستجوی JVMهای ابزاردقیق‌شده روی میزبان محلی می‌پردازد. اگر با یک hostid آغاز شود، با استفاده از پروتکل و پورت مشخص‌شده، در میزبان مورد نظر به جستجوی JVMها می‌پردازد. فرض بر این است که فرایند jstatd روی میزبان مقصد در حال اجرا باشد.

دستور jps شناسهٔ محلی JVM یا lvmid را برای هر JVM ابزاردقیق‌شدهٔ یافت‌شده روی سیستم مقصد گزارش می‌دهد. مقدار lvmid معمولاً (اما نه لزوماً) شناسهٔ فرایند سیستم‌عامل برای فرایند JVM است. بدون هیچ گزینه‌ای، دستور jps شناسهٔ lvmid هر برنامهٔ جاوا را به همراه شکل کوتاه نام کلاس یا نام فایل jar برنامه فهرست می‌کند. شکل کوتاه نام کلاس یا نام فایل JAR، اطلاعات بستهٔ کلاس یا اطلاعات مسیر فایل JAR را نادیده می‌گیرد.

دستور jps از راه‌انداز جاوا برای یافتن نام کلاس و آرگومان‌های ارسالی به متد main استفاده می‌کند. اگر JVM مقصد با یک راه‌انداز سفارشی راه‌اندازی شده باشد، نام کلاس یا فایل JAR و همچنین آرگومان‌های ارسال‌شده به متد main در دسترس نخواهند بود. در این وضعیت، دستور jps برای نام کلاس یا نام فایل JAR و همچنین برای آرگومان‌های ارسال‌شده به متد main رشتهٔ Unknown را چاپ می‌کند.

فهرست JVMهای ارائه‌شده توسط دستور jps می‌تواند توسط مجوزهای اعطاشده به کاربر یا هویتی که دستور را اجرا می‌کند محدود شود. این دستور تنها JVMهایی را فهرست می‌کند که کاربر اجراکننده بر اساس سازوکارهای کنترل دسترسی سیستم‌عامل، حق دسترسی به آن‌ها را داشته باشد.

شناسهٔ میزبان یا hostid رشته‌ای است که سیستم مقصد را مشخص می‌کند. نحو رشتهٔ hostid متناظر با نحو یک URI است:

[protocol:][[//]hostname][:port][/servername]

پروتکل ارتباطی. اگر protocol حذف شود و هیچ hostname مشخص نشده باشد، پروتکل پیش‌فرض یک پروتکل محلی بهینه‌شده و مختص به پلتفرم است. اگر پروتکل حذف شود و یک نام میزبان مشخص شده باشد، پروتکل پیش‌فرض rmi خواهد بود.
یک نام میزبان یا آدرس IP که میزبان مقصد را مشخص می‌کند. اگر پارامتر hostname را حذف کنید، میزبان مقصد همان میزبان محلی خواهد بود.
پورت پیش‌فرض برای برقراری ارتباط با سرور دوردست. اگر پارامتر hostname حذف شود یا پارامتر protocol یک پروتکل محلی بهینه‌شده را مشخص کند، پارامتر port نادیده گرفته می‌شود. در غیر این صورت، نحوهٔ برخورد با پارامتر port وابسته به پیاده‌سازی خواهد بود. برای پروتکل پیش‌فرض rmi، پارامتر port شماره پورت برای rmiregistry روی میزبان دوردست را نشان می‌دهد. اگر پارامتر port حذف شود و پارامتر protocol نشان‌دهندهٔ rmi باشد، پورت پیش‌فرض rmiregistry (1099) استفاده می‌شود.
نحوهٔ برخورد با این پارامتر بستگی به پیاده‌سازی دارد. برای پروتکل محلی بهینه‌شده، این فیلد نادیده گرفته می‌شود. برای پروتکل rmi، این پارامتر رشته‌ای است که نام شیء دوردست RMI را در میزبان دوردست مشخص می‌کند. گزینهٔ -n دستور jstatd را ببینید.

خروجی دستور jps دارای الگوی زیر است:

lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

همهٔ نشانه‌های خروجی با فاصله از یکدیگر جدا می‌شوند. مقدار arg که شامل فاصله درونی باشد، هنگام تلاش برای نگاشت آرگومان‌ها به پارامترهای مکانی واقعی‌شان باعث ابهام می‌شود.

نکته:

توصیه می‌شود اسکریپت‌هایی برای تجزیهٔ خروجی jps ننویسید زیرا ممکن است این قالب در نسخه‌های آینده تغییر کند. اگر اسکریپت‌هایی بنویسید که خروجی jps را تجزیه کنند، باید انتظار داشته باشید که برای نسخه‌های بعدی این ابزار آن‌ها را تغییر دهید.

این بخش مثال‌هایی از دستور 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
2021 JDK 17