'\" t .\" Automatically generated by Pandoc 3.10.2 .\" .TH "JSHELL" "1" "2026" "JDK 26.0.2.1" "JDK Commands" .SH "نام (NAME)" jshell \- ارزیابی تعاملی اعلان‌ها، دستورها و عبارت‌های زبان برنامه‌نویسی Java در یک حلقه خواندن\-ارزیابی\-چاپ (REPL) .SH "خلاصه دستور (SYNOPSIS)" \f[CR]jshell\f[R] [\f[I]options\f[R]] [\f[I]load\-files\f[R]] .TP \f[I]options\f[R] گزینه‌های خط فرمان، جداشده با فاصله. بخش \f[B]گزینه‌های jshell\f[R] را ببینید. .TP \f[I]load\-files\f[R] یک یا چند اسکریپت برای اجرا هنگام شروع به کار ابزار. اسکریپت‌ها می‌توانند شامل هر قطعه‌کد معتبر یا دستورهای JShell باشند. .RS اسکریپت می‌تواند یک فایل محلی یا یکی از اسکریپت‌های از پیش تعریف‌شده زیر باشد: .TP \f[CR]DEFAULT\f[R] ورودی‌های پیش‌فرض را بارگذاری می‌کند، که معمولاً به عنوان import استفاده می‌شوند. .TP \f[CR]JAVASE\f[R] تمام بسته‌های Java SE را وارد (import) می‌کند. .TP \f[CR]PRINTING\f[R] توابع \f[CR]print\f[R]، \f[CR]println\f[R] و \f[CR]printf\f[R] را به عنوان متدهای \f[CR]jshell\f[R] برای استفاده درون ابزار تعریف می‌کند. .TP \f[CR]TOOLING\f[R] متدهای \f[CR]javac\f[R]، \f[CR]jar\f[R] و سایر متدها را برای اجرای ابزارهای JDK از طریق رابط خط فرمان آن‌ها درون ابزار \f[CR]jshell\f[R] تعریف می‌کند. برای بیش از یک اسکریپت، از فاصله برای جداسازی نام‌ها استفاده کنید. اسکریپت‌ها به همان ترتیبی که در خط فرمان وارد شده‌اند اجرا می‌شوند. اسکریپت‌های خط فرمان پس از اسکریپت‌های راه‌اندازی (startup) اجرا می‌شوند. برای اجرای یک اسکریپت پس از شروع JShell، از دستور \f[CR]/open\f[R] استفاده کنید. برای پذیرش ورودی از ورودی استاندارد (standard input) و غیرفعال کردن ورودی/خروجی تعاملی، یک خط تیره (\-) برای \f[I]load\-files\f[R] وارد کنید. این گزینه امکان استفاده از ابزار \f[CR]jshell\f[R] را در زنجیره‌های خط لوله (pipe) فراهم می‌کند. .RE .SH "توضیحات (DESCRIPTION)" ابزار JShell روشی برای ارزیابی تعاملی اعلان‌ها، دستورها و عبارت‌های زبان برنامه‌نویسی Java فراهم می‌کند، و یادگیری زبان، کاوش در کدها و APIهای ناآشنا و پیش‌نمونه‌سازی کدهای پیچیده را آسان‌تر می‌سازد. دستورهای Java، تعاریف متغیرها، تعاریف متدها، تعاریف کلاس‌ها، دستورهای import و عبارت‌ها پذیرفته می‌شوند. تکه‌کدهای وارد شده، قطعه‌کد (snippet) نامیده می‌شوند. .PP با ورود قطعه‌کدها، آن‌ها ارزیابی شده و بازخورد ارائه می‌شود. بسته به قطعه‌کد وارد شده و حالت بازخورد انتخاب‌شده، بازخوردها از نتایج و توضیحات عملیات گرفته تا هیچ‌چیز متغیر است. خطاها صرف‌نظر از حالت بازخورد، توضیح داده می‌شوند. هنگام یادگیری این ابزار، کار را با حالت پرگو (verbose) آغاز کنید تا بیشترین بازخورد را دریافت نمایید. .PP گزینه‌های خط فرمان برای پیکربندی محیط اولیه در زمان راه‌اندازی JShell در دسترس هستند. درون JShell، دستورهایی برای تغییر محیط بر حسب نیاز وجود دارد. .PP قطعه‌کدهای موجود را می‌توان از یک فایل برای مقداردهی اولیه یک نشست JShell یا در هر زمان از نشست بارگذاری کرد. قطعه‌کدها را می‌توان درون نشست تغییر داد تا حالت‌های گوناگون را بررسی کرده و اصلاحات انجام داد. برای نگه‌داشتن قطعه‌کدها جهت استفاده‌های بعدی، آن‌ها را در یک فایل ذخیره کنید. .SH "گزینه‌های JSHELL (OPTIONS FOR JSHELL)" .TP \f[CR]\-\-add\-exports\f[R] \f[I]module\f[R]/\f[I]package\f[R] بسته‌ای را مشخص می‌کند تا به عنوان صادرشده از ماژول تعریف‌کننده‌اش در نظر گرفته شود. .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CR],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را برای تحلیل علاوه بر ماژول اولیه مشخص می‌کند. .TP \f[CR]\-C\f[R]\f[I]flag\f[R] مقدار \f[I]flag\f[R] را به کامپایلر Java درون JShell منتقل می‌کند. برای نمونه، \f[CR]\-C\-Xlint\f[R] تمامی هشدارهای توصیه‌شده lint را فعال می‌کند، و \f[CR]\-C\-\-release=\f[R] کدی برای Java SE N کامپایل می‌کند، درست همان‌طور که \-\-release N مشخص شده باشد. .TP \f[CR]\-\-class\-path\f[R] \f[I]path\f[R] دایرکتوری‌ها و بایگانی‌هایی که برای یافتن فایل‌های کلاس جستجو می‌شوند را مشخص می‌کند. این گزینه مسیر موجود در متغیر محیطی \f[CR]CLASSPATH\f[R] را باطل (override) می‌کند. اگر متغیر محیطی تنظیم نشده باشد و از این گزینه نیز استفاده نشود، دایرکتوری جاری جستجو می‌شود. برای Linux و macOS، از دونقطه (:) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از یک نقطه‌ویرگول (;) برای جداسازی موارد استفاده کنید. .TP \f[CR]\-\-enable\-preview\f[R] امکان وابستگی کد به ویژگی‌های پیش‌نمایش (preview features) این نسخه را فراهم می‌کند. .TP \f[CR]\-\-execution\f[R] \f[I]specification\f[R] یک موتور اجرای جایگزین را مشخص می‌کند که در آن \f[I]specification\f[R] یک مشخصه ExecutionControl است. برای ساختار نحوی مشخصه، مستندات بسته jdk.jshell.spi را ببینید. .TP \f[CR]\-\-feedback\f[R] \f[I]mode\f[R] سطح اولیه بازخورد ارائه‌شده در پاسخ به ورودی‌ها را تنظیم می‌کند. سطح اولیه را می‌توان در طول نشست با استفاده از دستور \f[CR]/set feedback\f[R] \f[I]mode\f[R] تغییر داد. پیش‌فرض \f[CR]normal\f[R] است. .RS مقادیر زیر برای \f[I]mode\f[R] معتبر هستند: .TP \f[CR]verbose\f[R] بازخورد مفصلی برای ورودی‌ها ارائه می‌دهد. اطلاعات بیشتر درباره عملیات انجام‌شده پس از نتیجه عملیات نمایش داده می‌شود. اعلان ورودی (prompt) بعدی با یک خط خالی از بازخورد جدا می‌شود. .TP \f[CR]normal\f[R] میزان بازخورد متوسطی ارائه می‌دهد. اعلان ورودی بعدی با یک خط خالی از بازخورد جدا می‌شود. .TP \f[CR]concise\f[R] حداقل بازخورد را ارائه می‌دهد. اعلان ورودی بعدی بلافاصله پس از قطعه‌کد یا بازخورد قرار می‌گیرد. .TP \f[CR]silent\f[R] هیچ بازخوردی ارائه نمی‌دهد. اعلان ورودی بعدی بلافاصله پس از قطعه‌کد قرار می‌گیرد. .TP \f[I]custom\f[R] بر اساس نحوه تعریف حالت، بازخورد سفارشی ارائه می‌دهد. حالت‌های بازخورد سفارشی درون JShell با استفاده از دستور \f[CR]/set mode\f[R] ساخته می‌شوند. .RE .TP \f[CR]\-\-help\f[R] یا \f[CR]\-h\f[R] یا \f[CR]\-?\f[R] خلاصه‌ای از گزینه‌های استاندارد را چاپ کرده و از ابزار خارج می‌شود. .TP \f[CR]\-\-help\-extra\f[R] یا \f[CR]\-X\f[R] خلاصه‌ای از گزینه‌های غیراستاندارد را چاپ کرده و از ابزار خارج می‌شود. گزینه‌های غیراستاندارد ممکن است بدون اطلاع قبلی تغییر کنند. .TP \f[CR]\-J\f[R]\f[I]flag\f[R] مقدار \f[I]flag\f[R] را به سامانه زمان اجرا منتقل می‌کند، اما تأثیری بر اجرای قطعه‌کدها ندارد. برای تعیین پرچم‌هایی که بر اجرای قطعه‌کدها اثر می‌گذارند، از \f[CR]\-R\f[R]\f[I]flag\f[R] استفاده کنید. همچنین می‌توانید از \f[CR]\-J\f[R]\f[I]flag\f[R] به همراه \f[CR]\-\-execution local\f[R] استفاده کنید. .TP \f[CR]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای Linux و macOS، از دونقطه (:) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از نقطه‌ویرگول (;) برای جداسازی موارد استفاده کنید. .TP \f[CR]\-\-no\-startup\f[R] از اجرای اسکریپت‌های راه‌اندازی هنگام شروع JShell جلوگیری می‌کند. از این گزینه برای اجرای صرف اسکریپت‌های وارد شده در خط فرمان هنگام شروع JShell، یا برای شروع JShell بدون هیچ اطلاعات از پیش بارگذاری‌شده در صورت عدم ورود اسکریپت، استفاده کنید. اگر از گزینه \f[CR]\-\-startup\f[R] استفاده شود، نمی‌توان این گزینه را به کار برد. .TP \f[CR]\-q\f[R] حالت بازخورد را روی \f[CR]concise\f[R] تنظیم می‌کند، که معادل وارد کردن \f[CR]\-\-feedback concise\f[R] است. .TP \f[CR]\-R\f[R]\f[I]flag\f[R] تنها در هنگام اجرای قطعه‌کدها، \f[I]flag\f[R] را به سامانه زمان اجرا منتقل می‌کند. برای نمونه، \f[CR]\-R\-Dfoo=bar\f[R] به این معنی است که اجرای قطعه‌کد \f[CR]System.getProperty(\(dqfoo\(dq)\f[R] مقدار \f[CR]\(dqbar\(dq\f[R] را بازمی‌گرداند. .TP \f[CR]\-s\f[R] حالت بازخورد را روی \f[CR]silent\f[R] تنظیم می‌کند، که معادل وارد کردن \f[CR]\-\-feedback silent\f[R] است. .TP \f[CR]\-\-show\-version\f[R] اطلاعات نسخه را چاپ کرده و وارد ابزار می‌شود. .TP \f[CR]\-\-startup\f[R] \f[I]file\f[R] اسکریپت راه‌اندازی پیش‌فرض را برای این نشست جایگزین (override) می‌کند. اسکریپت می‌تواند شامل هر قطعه‌کد یا دستور معتبری باشد. .RS اسکریپت می‌تواند یک فایل محلی یا یکی از اسکریپت‌های از پیش تعریف‌شده زیر باشد: .TP \f[CR]DEFAULT\f[R] ورودی‌های پیش‌فرض را بارگذاری می‌کند، که معمولاً به عنوان import استفاده می‌شوند. .TP \f[CR]JAVASE\f[R] تمام بسته‌های Java SE را وارد (import) می‌کند. .TP \f[CR]PRINTING\f[R] توابع \f[CR]print\f[R]، \f[CR]println\f[R] و \f[CR]printf\f[R] را به عنوان متدهای \f[CR]jshell\f[R] برای استفاده درون ابزار تعریف می‌کند..TP \f[CR]TOOLING\f[R] متدهای \f[CR]javac\f[R]، \f[CR]jar\f[R] و سایر متدها را برای اجرای ابزارهای JDK از طریق واسط خط فرمان آن‌ها در ابزار \f[CR]jshell\f[R] تعریف می‌کند. برای بیش از یک اسکریپت، برای هر اسکریپت یک نمونهٔ جداگانه از این گزینه ارائه دهید. اسکریپت‌های راه‌اندازی هنگامی که JShell برای نخستین بار آغاز می‌شود و زمانی که نشست با دستورهای \f[CR]/reset\f[R]، \f[CR]/reload\f[R] یا \f[CR]/env\f[R] بازراه‌اندازی می‌شود، اجرا می‌گردند. اسکریپت‌های راه‌اندازی به همان ترتیبی که در خط فرمان وارد شده‌اند اجرا می‌شوند. اگر از گزینهٔ \f[CR]\-\-no\-startup\f[R] استفاده شود، نمی‌توان از این گزینه استفاده کرد. .RE .TP \f[CR]\-v\f[R] حالت بازخورد را روی \f[CR]verbose\f[R] تنظیم می‌کند، که معادل وارد کردن \f[CR]\-\-feedback verbose\f[R] است. .TP \f[CR]\-\-version\f[R] اطلاعات نسخه را چاپ کرده و از ابزار خارج می‌شود. .SH "دستورات JSHELL (JSHELL COMMANDS)" درون ابزار \f[CR]jshell\f[R]، از دستورات برای تغییر محیط و مدیریت قطعه‌کدها استفاده می‌شود. .TP \f[CR]/drop\f[R] {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدهای مشخص‌شده بر اساس نام، شناسه یا بازه‌ای از شناسه‌ها را حذف کرده و آن‌ها را غیرفعال می‌سازد. برای بازه‌ای از شناسه‌ها، شناسهٔ شروع و شناسهٔ پایان را با یک خط پیوند جدا کنید. برای ارائهٔ یک فهرست، موارد فهرست را با فاصله جدا کنید. از دستور \f[CR]/list\f[R] برای دیدن شناسه‌های قطعه‌کدها استفاده کنید. .TP \f[CR]/edit\f[R] [\f[I]option\f[R]] یک ویرایشگر باز می‌کند. اگر گزینه‌ای وارد نشود، ویرایشگر با قطعه‌کدهای فعال باز می‌شود. .RS گزینه‌های زیر معتبر هستند: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] ویرایشگر را با قطعه‌کدهای مشخص‌شده بر اساس نام، شناسه یا بازه‌ای از شناسه‌ها باز می‌کند. برای بازه‌ای از شناسه‌ها، شناسهٔ شروع و شناسهٔ پایان را با یک خط پیوند جدا کنید. برای ارائهٔ یک فهرست، موارد درون فهرست را با فاصله جدا کنید. از دستور \f[CR]/list\f[R] برای مشاهدهٔ شناسه‌های قطعه‌کدها استفاده کنید. .TP \f[CR]\-all\f[R] ویرایشگر را با تمام قطعه‌کدها باز می‌کند، شامل قطعه‌کدهای راه‌اندازی و قطعه‌کدهایی که با شکست مواجه شده، بازنویسی شده یا حذف شده‌اند. .TP \f[CR]\-start\f[R] ویرایشگر را با قطعه‌کدهای راه‌اندازی که هنگام شروع JShell ارزیابی شده‌اند باز می‌کند. برای خروج از حالت ویرایش، پنجرهٔ ویرایشگر را ببندید، یا در صورتی که گزینهٔ \f[CR]\-wait\f[R] هنگام تنظیم ویرایشگر استفاده شده است، به اعلان ارائه‌شده پاسخ دهید. از دستور \f[CR]/set editor\f[R] برای تعیین ویرایشگر مورد استفاده بهره ببرید. اگر ویرایشگری تنظیم نشده باشد، متغیرهای محیطی زیر به ترتیب بررسی می‌شوند: \f[CR]JSHELLEDITOR\f[R]، \f[CR]VISUAL\f[R] و \f[CR]EDITOR\f[R]. اگر هیچ ویرایشگری در JShell تعیین نشده باشد و هیچ‌یک از متغیرهای محیطی ویرایشگر نیز تنظیم نشده باشند، یک ویرایشگر پیش‌فرض ساده به کار گرفته می‌شود. .RE .TP \f[CR]/env\f[R] [\f[I]options\f[R]] تنظیمات محیط را نمایش می‌دهد، یا تنظیمات محیط را به‌روزرسانی کرده و نشست را بازراه‌اندازی می‌کند. اگر هیچ گزینه‌ای وارد نشود، تنظیمات فعلی محیط نمایش داده می‌شود. اگر یک یا چند گزینه وارد شود، نشست به شیوهٔ زیر بازراه‌اندازی می‌گردد: .RS .IP \(bu 2 تنظیمات محیط را با گزینه‌های ارائه‌شده به‌روزرسانی می‌کند. .IP \(bu 2 وضعیت اجرا را بازنشانی می‌کند. .IP \(bu 2 اسکریپت‌های راه‌اندازی را اجرا می‌کند. .IP \(bu 2 تاریخچه را به ترتیبی که وارد شده است بدون خروجی اضافه (در سکوت) دوباره اجرا می‌کند. تاریخچه شامل تمام قطعه‌کدهای معتبر یا دستورات \f[CR]/drop\f[R] واردشده در اعلان \f[CR]jshell\f[R]، در اسکریپت‌های خط فرمان، یا اسکریپت‌های واردشده با دستور \f[CR]/open\f[R] است. تنظیمات محیطی واردشده در خط فرمان یا ارائه‌شده با دستور پیشین \f[CR]/reset\f[R]، \f[CR]/env\f[R] یا \f[CR]/reload\f[R] حفظ می‌شوند مگر آنکه یک \f[I]option\f[R] وارد شود که آن تنظیم را بازنویسی کند. گزینه‌های زیر معتبر هستند: .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CR],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را مشخص می‌کند تا علاوه بر ماژول اولیه برطرف (resolve) شوند. .TP \f[CR]\-\-add\-exports\f[R] \f[I]source\-module\f[R]\f[CR]/\f[R]\f[I]package\f[R]\f[CR]=\f[R]\f[I]target\-module\f[R][\f[CR],\f[R]\f[I]target\-module\f[R]]* یک برون‌بری از \f[I]package\f[R] را از \f[I]source\-module\f[R] به \f[I]target\-module\f[R] اضافه می‌کند. .TP \f[CR]\-\-class\-path\f[R] \f[I]path\f[R] دایرکتوری‌ها و آرشیوهایی را مشخص می‌کند که برای یافتن فایل‌های کلاس جستجو می‌شوند. این گزینه مسیر موجود در متغیر محیطی \f[CR]CLASSPATH\f[R] را بازنویسی می‌کند. اگر متغیر محیطی تنظیم نشده باشد و از این گزینه نیز استفاده نشود، دایرکتوری جاری جستجو می‌شود. برای Linux و macOS، از دونقطه (\f[CR]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از نقطه‌ویرگول (\f[CR];\f[R]) برای جداسازی موارد استفاده کنید. .TP \f[CR]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای Linux و macOS، از دونقطه (\f[CR]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از نقطه‌ویرگول (\f[CR];\f[R]) برای جداسازی موارد استفاده کنید. .RE .TP \f[CR]/exit\f[R] [\f[I]integer\-expression\-snippet\f[R]] از ابزار خارج می‌شود. اگر هیچ قطعه‌کدی وارد نشود، وضعیت خروج صفر خواهد بود. اگر یک قطعه‌کد وارد شود و نتیجهٔ آن یک عدد صحیح باشد، آن نتیجه به‌عنوان وضعیت خروج استفاده می‌شود. اگر خطایی رخ دهد، یا نتیجهٔ قطعه‌کد یک عدد صحیح نباشد، خطایی نمایش داده می‌شود و ابزار فعال باقی می‌ماند. .TP \f[CR]/history\f[R] آنچه را که در این نشست وارد شده است نمایش می‌دهد. .TP \f[CR]/help\f[R] [\f[I]command\f[R]|\f[I]subject\f[R]] اطلاعاتی را دربارهٔ دستورات و موضوعات نمایش می‌دهد. اگر هیچ گزینه‌ای وارد نشود، خلاصه‌ای از اطلاعات مربوط به تمام دستورات و فهرستی از موضوعات در دسترس نمایش داده می‌شود. اگر یک دستور معتبر ارائه شود، اطلاعات تفصیلی برای آن دستور نمایش می‌یابد. اگر یک موضوع معتبر وارد شود، اطلاعات مربوط به آن موضوع نمایش داده می‌شود. .RS مقدارهای زیر برای \f[I]subject\f[R] معتبر هستند: .TP \f[CR]context\f[R] گزینه‌های در دسترس را برای پیکربندی محیط شرح می‌دهد. .TP \f[CR]intro\f[R] مقدمه‌ای بر این ابزار ارائه می‌دهد. .TP \f[CR]shortcuts\f[R] کلیدهای میان‌بر را برای تکمیل دستورات و قطعه‌کدها شرح می‌دهد. بخش \f[B]Input Shortcuts\f[R] را ببینید. .RE .TP \f[CR]/imports\f[R] واردسازی‌های فعال فعلی را نمایش می‌دهد، شامل مواردی از اسکریپت‌های راه‌اندازی و اسکریپت‌هایی که هنگام شروع JShell در خط فرمان وارد شده بودند. .TP \f[CR]/list\f[R] [\f[I]option\f[R]] فهرستی از قطعه‌کدها و شناسه‌های آن‌ها را نمایش می‌دهد. اگر هیچ گزینه‌ای وارد نشود، تمام قطعه‌کدهای فعال نمایش داده می‌شوند، اما قطعه‌کدهای راه‌اندازی نمایش داده نخواهند شد. .RS گزینه‌های زیر معتبر هستند: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدهای مشخص‌شده بر اساس نام، شناسه یا بازه‌ای از شناسه‌ها را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسهٔ شروع و شناسهٔ پایان را با یک خط پیوند جدا کنید. برای ارائهٔ یک فهرست، موارد فهرست را با فاصله جدا کنید. .TP \f[CR]\-all\f[R] تمام قطعه‌کدها را نمایش می‌دهد، شامل قطعه‌کدهای راه‌اندازی و قطعه‌کدهایی که با شکست مواجه شده، بازنویسی شده یا حذف شده‌اند. شناسه‌هایی که با \f[CR]s\f[R] آغاز می‌شوند قطعه‌کدهای راه‌اندازی هستند. شناسه‌هایی که با \f[CR]e\f[R] آغاز می‌شوند قطعه‌کدهایی هستند که با شکست مواجه شده‌اند. .TP \f[CR]\-start\f[R] قطعه‌کدهای راه‌اندازی را که هنگام شروع JShell ارزیابی شده بودند نمایش می‌دهد. .RE .TP \f[CR]/methods\f[R] [\f[I]option\f[R]] اطلاعات مربوط به متدهای واردشده را نمایش می‌دهد. اگر هیچ گزینه‌ای وارد نشود، نام، نوع پارامترها و نوع بازگشتی تمام متدهای فعال نمایش داده می‌شود. .RS گزینه‌های زیر معتبر هستند: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] اطلاعات مربوط به متدهای مشخص‌شده بر اساس نام، شناسه یا بازه‌ای از شناسه‌ها را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسهٔ شروع و شناسهٔ پایان را با یک خط پیوند جدا کنید. برای ارائهٔ یک فهرست، موارد درون فهرست را با فاصله جدا کنید. از دستور \f[CR]/list\f[R] برای دیدن شناسه‌های قطعه‌کدها استفاده کنید. .TP \f[CR]\-all\f[R] اطلاعات مربوط به تمام متدها را نمایش می‌دهد، شامل مواردی که هنگام شروع JShell اضافه شده‌اند و متدهایی که با شکست مواجه شده، بازنویسی شده یا حذف شده‌اند. .TP \f[CR]\-start\f[R] اطلاعات مربوط به متدهای راه‌اندازی را که هنگام شروع JShell اضافه شده بودند نمایش می‌دهد. .RE .TP \f[CR]/open\f[R] \f[I]file\f[R] اسکریپت مشخص‌شده را باز کرده و قطعه‌کدها را در ابزار می‌خواند. اسکریپت می‌تواند یک فایل محلی یا یکی از اسکریپت‌های از پیش تعریف‌شدهٔ زیر باشد: .RS.TP \f[CR]DEFAULT\f[R] مدخل‌های پیش‌فرضی را که معمولاً به عنوان import استفاده می‌شوند، بارگذاری می‌کند. .TP \f[CR]JAVASE\f[R] تمام بسته‌های Java SE را وارد (import) می‌کند. .TP \f[CR]PRINTING\f[R] \f[CR]print\f[R]، \f[CR]println\f[R] و \f[CR]printf\f[R] را به عنوان متدهای \f[CR]jshell\f[R] جهت استفاده در درون این ابزار تعریف می‌کند. .TP \f[CR]TOOLING\f[R] متدهای \f[CR]javac\f[R]، \f[CR]jar\f[R] و متدهای دیگری را برای اجرای ابزارهای JDK از طریق واسط خط‌فرمان آن‌ها در ابزار \f[CR]jshell\f[R] تعریف می‌کند. .RE .TP \f[CR]/reload\f[R] [\f[I]options\f[R]] نشست را به شرح زیر بازراه‌اندازی می‌کند: .RS .IP \(bu 2 تنظیمات محیط را با گزینه‌های ارائه‌شده (در صورت وجود) به‌روزرسانی می‌کند. .IP \(bu 2 وضعیت اجرا را بازنشانی می‌کند. .IP \(bu 2 اسکریپت‌های راه‌اندازی را اجرا می‌کند. .IP \(bu 2 تاریخچه را به ترتیبی که وارد شده‌اند مجدداً بازپخش می‌کند. تاریخچه شامل تمام قطعه‌کدهای معتبر یا دستورات \f[CR]/drop\f[R] واردشده در اعلان \f[CR]jshell\f[R]، در اسکریپت‌های واردشده از طریق خط‌فرمان، یا اسکریپت‌های واردشده با دستور \f[CR]/open\f[R] است. تنظیمات محیط واردشده در خط‌فرمان یا ارائه‌شده با دستور قبلی \f[CR]/reset\f[R]، \f[CR]/env\f[R] یا \f[CR]/reload\f[R] حفظ می‌شوند مگر اینکه یک \f[I]گزینه\f[R] وارد شود که آن تنظیمات را بازنویسی کند. گزینه‌های زیر معتبر هستند: .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CR],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را برای تفکیک، علاوه بر ماژول اولیه مشخص می‌کند. .TP \f[CR]\-\-add\-exports\f[R] \f[I]source\-module\f[R]\f[CR]/\f[R]\f[I]package\f[R]\f[CR]=\f[R]\f[I]target\-module\f[R][\f[CR],\f[R]\f[I]target\-module\f[R]]* یک برون‌ریزی (export) از \f[I]package\f[R] از \f[I]source\-module\f[R] به \f[I]target\-module\f[R] اضافه می‌کند. .TP \f[CR]\-\-class\-path\f[R] \f[I]path\f[R] دایرکتوری‌ها و آرشیوهایی را مشخص می‌کند که برای یافتن فایل‌های کلاس جستجو می‌شوند. این گزینه مسیر موجود در متغیر محیطی \f[CR]CLASSPATH\f[R] را لغو (override) می‌کند. اگر این متغیر محیطی تنظیم نشده باشد و از این گزینه استفاده نشود، دایرکتوری جاری جستجو می‌شود. برای Linux و macOS، از دونقطه (\f[CR]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از نقطه‌ویرگول (\f[CR];\f[R]) برای جداسازی موارد استفاده کنید. .TP \f[CR]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای Linux و macOS، از دونقطه (\f[CR]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از نقطه‌ویرگول (\f[CR];\f[R]) برای جداسازی موارد استفاده کنید. .TP \f[CR]\-quiet\f[R] تاریخچهٔ معتبر را بدون نمایش آن بازپخش می‌کند. خطاها نمایش داده می‌شوند. .TP \f[CR]\-restore\f[R] محیط را به وضعیت آغاز اجرای قبلی ابزار، یا به آخرین باری که دستور \f[CR]/reset\f[R]، \f[CR]/reload\f[R] یا \f[CR]/env\f[R] در اجرای قبلی اجرا شده بود، بازنشانی می‌کند. تاریخچهٔ معتبر از آن نقطه به بعد مجدداً بازپخش می‌شود. از این گزینه برای بازیابی نشست قبلی JShell استفاده کنید. .RE .TP \f[CR]/reset\f[R] [\f[I]options\f[R]] تمام قطعه‌کدهای واردشده را دور می‌ریزد و نشست را به شرح زیر بازراه‌اندازی می‌کند: .RS .IP \(bu 2 تنظیمات محیط را با گزینه‌های ارائه‌شده (در صورت وجود) به‌روزرسانی می‌کند. .IP \(bu 2 وضعیت اجرا را بازنشانی می‌کند. .IP \(bu 2 اسکریپت‌های راه‌اندازی را اجرا می‌کند. تاریخچه بازپخش نمی‌شود. تمام کدهایی که وارد شده بودند از دست می‌روند. تنظیمات محیط واردشده در خط‌فرمان یا ارائه‌شده با دستور قبلی \f[CR]/reset\f[R]، \f[CR]/env\f[R] یا \f[CR]/reload\f[R] حفظ می‌شوند مگر اینکه یک \f[I]گزینه\f[R] وارد شود که آن تنظیمات را بازنویسی کند. گزینه‌های زیر معتبر هستند: .TP \f[CR]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CR],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را برای تفکیک، علاوه بر ماژول اولیه مشخص می‌کند. .TP \f[CR]\-\-add\-exports\f[R] \f[I]source\-module\f[R]\f[CR]/\f[R]\f[I]package\f[R]\f[CR]=\f[R]\f[I]target\-module\f[R][\f[CR],\f[R]\f[I]target\-module\f[R]]* یک برون‌ریزی (export) از \f[I]package\f[R] از \f[I]source\-module\f[R] به \f[I]target\-module\f[R] اضافه می‌کند. .TP \f[CR]\-\-class\-path\f[R] \f[I]path\f[R] دایرکتوری‌ها و آرشیوهایی را مشخص می‌کند که برای یافتن فایل‌های کلاس جستجو می‌شوند. این گزینه مسیر موجود در متغیر محیطی \f[CR]CLASSPATH\f[R] را لغو (override) می‌کند. اگر این متغیر محیطی تنظیم نشده باشد و از این گزینه استفاده نشود، دایرکتوری جاری جستجو می‌شود. برای Linux و macOS، از دونقطه (\f[CR]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از نقطه‌ویرگول (\f[CR];\f[R]) برای جداسازی موارد استفاده کنید. .TP \f[CR]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای Linux و macOS، از دونقطه (\f[CR]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای Windows، از نقطه‌ویرگول (\f[CR];\f[R]) برای جداسازی موارد استفاده کنید. .RE .TP \f[CR]/save\f[R] [\f[I]options\f[R]] \f[I]file\f[R] قطعه‌کدها و دستورات را در فایل مشخص‌شده ذخیره می‌کند. اگر هیچ گزینه‌ای وارد نشود، قطعه‌کدهای فعال ذخیره می‌شوند. .RS گزینه‌های زیر معتبر هستند: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدها و دستوراتی را که بر اساس نام، شناسه (ID) یا بازه‌ای از شناساگرها مشخص شده‌اند، ذخیره می‌کند. برای بازه‌ای از شناسه‌ها، شناسهٔ آغازین و پایانی را که با یک خط تیره جدا شده‌اند وارد کنید. برای ارائهٔ یک فهرست، موارد موجود در فهرست را با فاصله (space) جدا کنید. از دستور \f[CR]/list\f[R] برای مشاهدهٔ شناسه‌های قطعه‌کدها استفاده کنید. .TP \f[CR]\-all\f[R] همهٔ قطعه‌کدها، از جمله قطعه‌کدهای راه‌اندازی و مواردی را که بازنویسی شده یا ناموفق بوده‌اند، ذخیره می‌کند. .TP \f[CR]\-history\f[R] تاریخچهٔ ترتیبی تمام دستورات و قطعه‌کدهای واردشده در نشست جاری را ذخیره می‌کند. .TP \f[CR]\-start\f[R] تنظیمات راه‌اندازی جاری را ذخیره می‌کند. اگر هیچ اسکریپت راه‌اندازی ارائه نشده باشد، یک فایل خالی ذخیره می‌شود. .RE .TP \f[CR]/set\f[R] [\f[I]setting\f[R]] اطلاعات پیکربندی، شامل ویرایشگر خارجی، تنظیمات راه‌اندازی و حالت بازخورد (feedback mode) را تنظیم می‌کند. این دستور همچنین برای ایجاد یک حالت بازخورد سفارشی با مقادیر اعلان (prompt)، قالب و کوتاه‌سازی سفارشی به کار می‌رود. اگر مقداری برای \f[I]setting\f[R] وارد نشود، تنظیمات جاری مربوط به ویرایشگر، تنظیمات راه‌اندازی و حالت بازخورد نمایش داده می‌شوند. .RS مقادیر زیر برای \f[CR]setting\f[R] معتبر هستند: .TP \f[CR]editor\f[R] [\f[I]options\f[R]] [\f[I]command\f[R]] دستوری را تنظیم می‌کند که هنگام وارد کردن دستور \f[CR]/edit\f[R] برای راه‌اندازی یک ویرایشگر خارجی استفاده می‌شود. این دستور می‌تواند شامل آرگومان‌های دستوری باشد که با فاصله جدا شده‌اند. اگر هیچ دستور یا گزینه‌ای وارد نشود، تنظیمات جاری نمایش داده می‌شود. .RS گزینه‌های زیر معتبر هستند: .TP \f[CR]\-default\f[R] ویرایشگر را روی ویرایشگر پیش‌فرضی که همراه JShell ارائه شده است تنظیم می‌کند. در صورتی که دستوری برای راه‌اندازی ویرایشگر وارد شده باشد، نمی‌توان از این گزینه استفاده کرد. .TP \f[CR]\-delete\f[R] ویرایشگر را به گزینه‌ای که هنگام آغاز نشست فعال بود بازمی‌گرداند. اگر با گزینهٔ \f[CR]\-retain\f[R] استفاده شود، تنظیمات حفظ‌شدهٔ ویرایشگر حذف می‌شود و ویرایشگر روی اولین متغیر محیطیِ یافت‌شده از میان متغیرهای زیر تنظیم می‌گردد: \f[CR]JSHELLEDITOR\f[R]، \f[CR]VISUAL\f[R] یا \f[CR]EDITOR\f[R]. اگر هیچ‌یک از متغیرهای محیطی ویرایشگر تنظیم نشده باشند، این گزینه ویرایشگر را روی ویرایشگر پیش‌فرض قرار می‌دهد. .RS در صورتی که دستوری برای راه‌اندازی ویرایشگر وارد شده باشد، نمی‌توان از این گزینه استفاده کرد. .RE .TP \f[CR]\-retain\f[R] تنظیمات ویرایشگر را برای تمام نشست‌های بعدی ذخیره می‌کند. اگر گزینه یا دستور دیگری وارد نشود، تنظیمات جاری ذخیره می‌شود. .TP \f[CR]\-wait\f[R] از کاربر می‌خواهد تا پایان ویرایش را اعلام کند. در غیر این صورت با خروج از ویرایشگر، کنترل به JShell بازمی‌گردد. اگر ویرایشگر مورد استفاده فوراً خارج می‌شود (برای نمونه، هنگامی که پنجرهٔ ویرایش از قبل باز است)، از این گزینه استفاده کنید. این گزینه تنها زمانی معتبر است که دستوری برای راه‌اندازی ویرایشگر وارد شده باشد. .RE .TP \f[CR]feedback\f[R] [\f[I]mode\f[R]] حالت بازخوردِ مورد استفاده برای پاسخ‌گویی به ورودی را تنظیم می‌کند. اگر هیچ حالتی وارد نشود، حالت جاری نمایش داده می‌شود. .RS حالت‌های زیر معتبر هستند: \f[CR]concise\f[R]، \f[CR]normal\f[R]، \f[CR]silent\f[R]، \f[CR]verbose\f[R] و هر حالت سفارشی ساخته‌شده با دستور \f[CR]/set mode\f[R]. .RE.TP \f[CR]format\f[R] \f[I]mode\f[R] \f[I]field\f[R] \f[CR]\(dq\f[R]\f[I]format\-string\f[R]\f[CR]\(dq\f[R] \f[I]selector\f[R] قالب بازخورد ارائه‌شده در پاسخ به ورودی را تنظیم می‌کند. اگر هیچ حالتی وارد نشود، قالب‌های فعلی تمام فیلدها برای تمام حالت‌های بازخورد نمایش داده می‌شوند. اگر فقط یک حالت وارد شود، قالب‌های فعلی برای آن حالت نمایش داده می‌شوند. اگر فقط یک حالت و فیلد وارد شوند، قالب‌های فعلی برای آن فیلد نمایش داده می‌شوند. .RS برای تعریف یک قالب، آرگومان‌های زیر لازم هستند: .TP \f[I]mode\f[R] حالت بازخوردی را مشخص می‌کند که قالب پاسخ روی آن اعمال می‌شود. تنها حالت‌های سفارشی ساخته‌شده با دستور \f[CR]/set mode\f[R] را می‌توان تغییر داد. .TP \f[I]field\f[R] فیلد وابسته به زمینه‌ای را مشخص می‌کند که قالب پاسخ روی آن اعمال می‌شود. فیلدها در راهنمای برخط شرح داده شده‌اند که از طریق JShell با استفاده از دستور \f[CR]/help /set format\f[R] در دسترس است. .TP \f[CR]\(dq\f[R]\f[I]format\-string\f[R]\f[CR]\(dq\f[R] رشته‌ای را مشخص می‌کند که باید به‌عنوان قالب پاسخ برای فیلد و گزینش‌گر (selector) مشخص‌شده استفاده شود. ساختار رشتهٔ قالب در راهنمای برخط شرح داده شده است که از طریق JShell با استفاده از دستور \f[CR]/help /set format\f[R] در دسترس است. .TP \f[I]selector\f[R] زمینه‌ای (context) را مشخص می‌کند که قالب پاسخ در آن اعمال می‌شود. گزینش‌گرها در راهنمای برخط شرح داده شده‌اند که از طریق JShell با استفاده از دستور \f[CR]/help /set format\f[R] در دسترس است. .RE .TP \f[CR]mode\f[R] [\f[I]mode\-name\f[R]] [\f[I]existing\-mode\f[R]] [\f[I]options\f[R]] یک حالت بازخورد سفارشی با نام حالت ارائه‌شده ایجاد می‌کند. اگر هیچ نام حالتی وارد نشود، تنظیمات تمام حالت‌ها نمایش داده می‌شود که شامل تنظیمات حالت، اعلان (prompt)، قالب و کوتاه‌سازی (truncation) است. اگر نام یک حالت موجود وارد شود، تنظیمات آن حالت موجود در حالت در حال ایجاد رونوشت می‌شود. .RS گزینه‌های زیر معتبر هستند: .TP \f[CR]\-command\f[R]|\f[CR]\-quiet\f[R] سطح بازخورد نمایش‌داده‌شده برای دستورها را هنگام استفاده از این حالت مشخص می‌کند. این گزینه هنگام ایجاد یک حالت بازخورد الزامی است. از \f[CR]\-command\f[R] برای نمایش اطلاعات و بازخورد راستی‌آزمایی برای دستورها استفاده کنید. از \f[CR]\-quiet\f[R] برای نمایش بازخوردهای ضروری برای دستورها، مانند پیام‌های خطا، استفاده کنید. .TP \f[CR]\-delete\f[R] حالت بازخورد نام‌برده‌شده را برای این نشست حذف می‌کند. وارد کردن نام حالتی که باید حذف شود الزامی است. برای حذف دائمی یک حالت نگه‌داری‌شده، از گزینهٔ \f[CR]\-retain\f[R] همراه با این گزینه استفاده کنید. حالت‌های از پیش‌تعریف‌شده را نمی‌توان حذف کرد. .TP \f[CR]\-retain\f[R] حالت بازخورد نام‌برده‌شده را در تمام نشست‌ها ذخیره می‌کند. وارد کردن نام حالتی که باید نگه‌داری شود الزامی است. حالت بازخورد جدید را با استفاده از دستورهای \f[CR]/set prompt\f[R]، \f[CR]/set format\f[R] و \f[CR]/set truncation\f[R] پیکربندی کنید. برای شروع استفاده از حالت جدید، از دستور \f[CR]/set feedback\f[R] استفاده کنید. .RE .TP \f[CR]prompt\f[R] \f[I]mode\f[R] \f[CR]\(dq\f[R]\f[I]prompt\-string\f[R]\f[CR]\(dq\f[R] \f[CR]\(dq\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CR]\(dq\f[R] اعلان‌های ورودی را درون JShell تنظیم می‌کند. اگر هیچ حالتی وارد نشود، اعلان‌های فعلی برای تمام حالت‌های بازخورد نمایش داده می‌شوند. اگر فقط یک حالت وارد شود، اعلان‌های فعلی برای آن حالت نمایش داده می‌شوند. .RS برای تعریف یک اعلان، آرگومان‌های زیر لازم هستند: .TP \f[I]mode\f[R] حالت بازخوردی را مشخص می‌کند که اعلان‌ها روی آن اعمال می‌شوند. تنها حالت‌های سفارشی ایجادشده با دستور \f[CR]/set mode\f[R] قابل تغییر هستند. .TP \f[CR]\(dq\f[R]\f[I]prompt\-string\f[R]\f[CR]\(dq\f[R] رشته‌ای را مشخص می‌کند که به‌عنوان اعلان خط اول ورودی استفاده شود. .TP \f[CR]\(dq\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CR]\(dq\f[R] رشته‌ای را مشخص می‌کند که به‌عنوان اعلان خطوط ورودی اضافیِ مورد نیاز برای تکمیل یک قطعه‌کد استفاده شود. .RE .TP \f[CR]start\f[R] [\f[CR]\-retain\f[R]] [\f[I]file\f[R] [\f[I]file\f[R]...]|\f[I]option\f[R]] نام اسکریپت‌های راه‌اندازی مورد استفاده هنگام اجرای دستور بعدی \f[CR]/reset\f[R]، \f[CR]/reload\f[R] یا \f[CR]/env\f[R] را تعیین می‌کند. اگر بیش از یک اسکریپت وارد شود، اسکریپت‌ها به همان ترتیبی که وارد شده‌اند اجرا می‌شوند. اگر هیچ اسکریپت یا گزینه‌ای وارد نشود، تنظیمات راه‌اندازی فعلی نمایش داده می‌شوند. .RS اسکریپت‌ها می‌توانند فایل‌های محلی یا یکی از اسکریپت‌های از پیش‌تعریف‌شدهٔ زیر باشند: .TP \f[CR]DEFAULT\f[R] موردهای پیش‌فرض را که معمولاً به‌عنوان واردسازی (import) استفاده می‌شوند، بارگذاری می‌کند. .TP \f[CR]JAVASE\f[R] تمام بسته‌های Java SE را وارد می‌کند. .TP \f[CR]PRINTING\f[R] توابع \f[CR]print\f[R]، \f[CR]println\f[R] و \f[CR]printf\f[R] را به‌عنوان متدهای \f[CR]jshell\f[R] جهت استفاده در ابزار تعریف می‌کند. .TP \f[CR]TOOLING\f[R] متدهای \f[CR]javac\f[R]، \f[CR]jar\f[R] و سایر متدها را برای اجرای ابزارهای JDK از طریق واسط خط فرمان آن‌ها در ابزار \f[CR]jshell\f[R] تعریف می‌کند. گزینه‌های زیر معتبر هستند: .TP \f[CR]\-default\f[R] تنظیمات راه‌اندازی را به تنظیمات پیش‌فرض بازمی‌گرداند. .TP \f[CR]\-none\f[R] مشخص می‌کند که از هیچ تنظیمات راه‌اندازی استفاده نشود. از گزینهٔ \f[CR]\-retain\f[R] برای ذخیرهٔ تنظیمات راه‌اندازی در طول نشست‌ها استفاده کنید. .RE .TP \f[CR]truncation\f[R] \f[I]mode\f[R] \f[I]length\f[R] \f[I]selector\f[R] حداکثر طول یک مقدار نمایش‌داده‌شده را تنظیم می‌کند. اگر هیچ حالتی وارد نشود، مقادیر کوتاه‌سازی فعلی برای تمام حالت‌های بازخورد نمایش داده می‌شوند. اگر فقط یک حالت وارد شود، مقادیر کوتاه‌سازی فعلی برای آن حالت نمایش داده می‌شوند. .RS برای تعریف مقادیر کوتاه‌سازی، آرگومان‌های زیر لازم هستند: .TP \f[I]mode\f[R] حالت بازخوردی را مشخص می‌کند که مقدار کوتاه‌سازی روی آن اعمال می‌شود. تنها حالت‌های سفارشی ایجادشده با دستور \f[CR]/set mode\f[R] قابل تغییر هستند. .TP \f[I]length\f[R] عدد صحیح بدون علامتی را مشخص می‌کند که به‌عنوان بیشینهٔ طول برای گزینش‌گرِ تعیین‌شده استفاده می‌شود. .TP \f[I]selector\f[R] زمینه‌ای را مشخص می‌کند که مقدار کوتاه‌سازی در آن اعمال می‌شود. گزینش‌گرها در راهنمای برخط شرح داده شده‌اند که از طریق JShell با استفاده از دستور \f[CR]/help /set truncation\f[R] در دسترس است. .RE .RE .TP \f[CR]/types\f[R] [\f[I]option\f[R]] کلاس‌ها، رابط‌ها (interfaces) و enumهایی که وارد شده‌اند را نمایش می‌دهد. اگر هیچ گزینه‌ای وارد نشود، تمام کلاس‌ها، رابط‌ها و enumهای فعال فعلی نمایش داده می‌شوند. .RS گزینه‌های زیر معتبر هستند: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] اطلاعات کلاس‌ها، رابط‌ها و enumهای مشخص‌شده بر پایهٔ نام، شناسه یا بازه‌ای از شناسه‌ها را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسهٔ آغازین و شناسهٔ پایانی را که با یک خط تیره از هم جدا شده‌اند وارد کنید. برای ارائهٔ یک فهرست، موارد درون فهرست را با فاصله جدا کنید. از دستور \f[CR]/list\f[R] برای مشاهدهٔ شناسه‌های قطعه‌کدها استفاده کنید. .TP \f[CR]\-all\f[R] اطلاعات تمام کلاس‌ها، رابط‌ها و enumها را نمایش می‌دهد، از جمله مواردی که هنگام شروع JShell اضافه شده‌اند، و مواردی که با شکست مواجه شده، بازنویسی شده یا کنار گذاشته شده‌اند. .TP \f[CR]\-start\f[R] اطلاعات کلاس‌ها، رابط‌ها و enumهای راه‌اندازی را که هنگام شروع JShell اضافه شده‌اند نمایش می‌دهد. .RE .TP \f[CR]/vars\f[R] [\f[I]option\f[R]] نام، نوع و مقدار متغیرهایی که وارد شده‌اند را نمایش می‌دهد. اگر هیچ گزینه‌ای وارد نشود، تمام متغیرهای فعال کنونی نمایش داده می‌شوند. .RS گزینه‌های زیر معتبر هستند: .TP {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] اطلاعات متغیرهای مشخص‌شده با نام، شناسه یا بازه‌ای از شناسه‌ها را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسهٔ آغازین و شناسهٔ پایانی را که با یک خط تیره از هم جدا شده‌اند وارد کنید. برای ارائهٔ یک فهرست، موارد موجود در فهرست را با فاصله جدا کنید. از دستور \f[CR]/list\f[R] برای مشاهدهٔ شناسه‌های قطعه‌کدها استفاده کنید. .TP \f[CR]\-all\f[R] اطلاعات تمام متغیرها را نمایش می‌دهد، از جمله متغیرهایی که هنگام شروع JShell اضافه شده‌اند، و متغیرهایی که ناموفق بوده، بازنویسی شده یا کنار گذاشته شده‌اند. .TP \f[CR]\-start\f[R] اطلاعات متغیرهای راه‌اندازی را که هنگام شروع JShell اضافه شده‌اند نمایش می‌دهد. .RE.TP \f[CR]/?\f[R] همانند دستور \f[CR]/help\f[R]. .TP \f[CR]/!\f[R] آخرین قطعه‌کد (snippet) را دوباره اجرا می‌کند. .TP \f[CR]/\f[R]{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CR]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدهای مشخص‌شده بر اساس شناسه (ID)، بازه‌ای از شناسه‌ها، یا نام را دوباره اجرا می‌کند. برای بازه‌ای از شناسه‌ها، شناسه آغازین و شناسه پایانی را با یک خط تیره جدا کنید. برای ارائه یک فهرست، موارد درون فهرست را با فاصله (space) جدا نمایید. نخستین مورد در فهرست باید یک شناسه یا بازه‌ای از شناسه‌ها باشد. برای دیدن شناسه‌های قطعه‌کدها، از دستور \f[CR]/list\f[R] استفاده کنید. .TP \f[CR]/\-\f[R]\f[I]n\f[R] قطعه‌کد \-\f[I]n\f[R]ام قبلی را دوباره اجرا می‌کند. برای نمونه، اگر ۱۵ قطعه‌کد وارد شده باشد، دستور \f[CR]/\-4\f[R] قطعه‌کد یازدهم را اجرا می‌کند. دستورها در این شمارش به حساب نمی‌آیند. .SH "میان‌برهای ورودی (INPUT SHORTCUTS)" میان‌برهای زیر برای وارد کردن دستورها و قطعه‌کدها در JShell در دسترس هستند. .SS "تکمیل خودکار با کلید Tab (Tab completion)" .TP \f[B]\f[R] هنگام وارد کردن قطعه‌کدها، دستورها، زیردستورها، آرگومان‌های دستور، یا گزینه‌های دستور، از کلید Tab برای تکمیل خودکار مورد استفاده کنید. اگر مورد بر اساس آنچه وارد شده قابل تشخیص نباشد، گزینه‌های ممکن نمایش داده می‌شوند. .RS هنگام وارد کردن فراخوانی یک متد، پس از پرانتز بازِ فراخوانی متد از کلید Tab استفاده کنید تا پارامترهای متد را مشاهده نمایید. اگر متد بیش از یک امضا (signature) داشته باشد، تمام امضاها نمایش داده می‌شوند. فشردن دوباره کلید Tab، توضیحات متد و پارامترهای نخستین امضا را نمایش می‌دهد. برای مشاهده توضیحات هر یک از امضاهای دیگر، به فشردن کلید Tab ادامه دهید. .RE .TP \f[B]Shift+ V\f[R] پس از وارد کردن یک عبارت (expression) کامل، از این توالی کلیدها برای تبدیل عبارت به اعلان یک متغیر (variable declaration) با نوعی که بر اساس نوع عبارت مشخص می‌شود، استفاده کنید. .TP \f[B]Shift+ M\f[R] پس از وارد کردن یک عبارت یا دستور کامل (statement)، از این توالی کلیدها برای تبدیل عبارت یا دستور به اعلان یک متد (method declaration) استفاده کنید. اگر یک عبارت وارد شده باشد، نوع بازگشتی بر پایه نوع عبارت خواهد بود. .TP \f[B]Shift+ I\f[R] هنگامی که شناسه‌ای (identifier) وارد شود که قابل تفکیک و حل نیست، از این توالی کلیدها برای نمایش importهای ممکنی که بر اساس محتوای class path مشخص‌شده شناسه را حل می‌کنند، استفاده کنید. .SS "کوته‌نوشت‌های دستور (Command abbreviations)" کوته‌نوشت یک دستور در صورتی پذیرفته می‌شود که به طور یکتا یک دستور را مشخص کند. برای نمونه، \f[CR]/l\f[R] به عنوان دستور \f[CR]/list\f[R] شناخته می‌شود. با این حال، \f[CR]/s\f[R] یک کوته‌نوشت معتبر نیست زیرا نمی‌توان تشخیص داد که منظور دستور \f[CR]/set\f[R] است یا \f[CR]/save\f[R]. از \f[CR]/se\f[R] برای دستور \f[CR]/set\f[R] یا از \f[CR]/sa\f[R] برای دستور \f[CR]/save\f[R] استفاده کنید. .PP کوته‌نوشت‌ها برای زیردستورها، آرگومان‌های دستور، و گزینه‌های دستور نیز پذیرفته می‌شوند. برای نمونه، از \f[CR]/m \-a\f[R] برای نمایش همه متدها استفاده کنید. .SS "پیمایش تاریخچه (History navigation)" تاریخچه‌ای از ورودی‌ها در تمام نشست‌ها (sessions) نگهداری می‌شود. از کلیدهای جهت‌نمای بالا و پایین برای پیمایش میان دستورها و قطعه‌کدهای نشست جاری و نشست‌های گذشته استفاده کنید. از کلید Ctrl همراه با کلیدهای جهت‌نمای بالا و پایین برای پرش از تمام خطوط به جز خط نخست در قطعه‌کدهای چندخطی استفاده کنید. .SS "جستجو در تاریخچه (History search)" از ترکیب کلیدهای Ctrl+R برای جستجوی رشته واردشده در تاریخچه استفاده کنید. اعلان خط فرمان (prompt) تغییر می‌کند تا رشته و مورد منطبق را نمایش دهد. ترکیب Ctrl+R از موقعیت جاری در تاریخچه به سمت عقب و در میان ورودی‌های قبلی جستجو می‌کند. ترکیب Ctrl+S از موقعیت جاری در تاریخچه به سمت جلو و در میان ورودی‌های بعدی جستجو می‌کند. .SH "ویرایش ورودی (INPUT EDITING)" قابلیت‌های ویرایشی JShell مشابه سایر شل‌های رایج است. کلیدها و ترکیب‌های کلیدی صفحه‌کلید، میان‌برهایی برای ویرایش خط فراهم می‌کنند. کلیدهای Ctrl و Meta در ترکیب‌های کلیدی به کار می‌روند. اگر صفحه‌کلید شما فاقد کلید Meta است، کلید Alt اغلب برای ارائه عملکرد کلید Meta نگاشت می‌شود. .PP میان‌برهای ویرایش خط .TS tab(@); l l. T{ کلید یا ترکیب کلیدها T}@T{ عملیات T} _ T{ Return T}@T{ وارد کردن خط جاری. T} T{ Left arrow T}@T{ حرکت دادن مکان‌نما به اندازه یک نویسه به چپ. T} T{ Right arrow T}@T{ حرکت دادن مکان‌نما به اندازه یک نویسه به راست. T} T{ Ctrl+A T}@T{ حرکت دادن مکان‌نما به ابتدای خط. T} T{ Ctrl+E T}@T{ حرکت دادن مکان‌نما به انتهای خط. T} T{ Meta+B T}@T{ حرکت دادن مکان‌نما به اندازه یک کلمه به چپ. T} T{ Meta+F T}@T{ حرکت دادن مکان‌نما به اندازه یک کلمه به راست. T} T{ Delete T}@T{ حذف نویسه زیر مکان‌نما. T} T{ Backspace T}@T{ حذف نویسه پیش از مکان‌نما. T} T{ Ctrl+K T}@T{ حذف متن از مکان‌نما تا انتهای خط. T} T{ Meta+D T}@T{ حذف متن از مکان‌نما تا انتهای کلمه. T} T{ Ctrl+W T}@T{ حذف متن از مکان‌نما تا فاصله خالی (white space) قبلی. T} T{ Ctrl+Y T}@T{ جای‌گذاری متن اخیراً حذف‌شده در خط. T} T{ Meta+Y T}@T{ پس از Ctrl+Y، فشردن آن باعث گردش میان متن‌های قبلاً حذف‌شده می‌شود. T} .TE.SH "مثال آغاز و پایان نشست JSHELL (EXAMPLE OF STARTING AND STOPPING A JSHELL SESSION)" ابزار JShell به همراه JDK ارائه می‌شود. برای آغاز یک نشست، \f[CR]jshell\f[R] را در خط فرمان وارد کنید. پیام خوش‌آمدگویی چاپ شده و اعلان خط فرمان برای وارد کردن دستورها و قطعه‌کدها آماده می‌شود. .IP .EX % jshell | Welcome to JShell \-\- Version 9 | For an introduction type: /help intro jshell> .EE .PP برای مشاهده این که کدام قطعه‌کدها هنگام شروع JShell به طور خودکار بارگذاری شده‌اند، از دستور \f[CR]/list \-start\f[R] استفاده کنید. قطعه‌کدهای آغازین پیش‌فرض شامل عبارات import برای بسته‌های رایج هستند. شناسه (ID) هر قطعه‌کد با حرف \f[I]s\f[R] آغاز می‌شود که نشان‌دهنده آغازین (startup) بودن آن است. .IP .EX jshell> /list \-start s1 : import java.io.*; s2 : import java.math.*; s3 : import java.net.*; s4 : import java.nio.file.*; s5 : import java.util.*; s6 : import java.util.concurrent.*; s7 : import java.util.function.*; s8 : import java.util.prefs.*; s9 : import java.util.regex.*; s10 : import java.util.stream.*; jshell> .EE .PP برای پایان دادن به نشست، از دستور \f[CR]/exit\f[R] استفاده کنید. .IP .EX jshell> /exit | Goodbye % .EE .SH "مثال وارد کردن قطعه‌کدها (EXAMPLE OF ENTERING SNIPPETS)" قطعه‌کدها شامل دستورهای جاوا، تعاریف متغیر، تعاریف متد، تعاریف کلاس، عبارات import و عبارت‌های محاسباتی (expressions) هستند. در صورتی که نقطه‌ویرگول پایانی وجود نداشته باشد، به طور خودکار به انتهای یک قطعه‌کد کامل افزوده می‌شود. .PP مثال زیر تعریف دو متغیر و یک متد، و سپس اجرای آن متد را نشان می‌دهد. توجه داشته باشید از آنجا که متغیری مشخص نشده بود، یک متغیر موقت (scratch) به طور خودکار برای نگهداری نتیجه ایجاد می‌شود. .IP .EX jshell> int a=4 a ==> 4 jshell> int b=8 b ==> 8 jshell> int square(int i1) { ...> return i1 * i1; ...> } | created method square(int) jshell> square(b) $5 ==> 64 .EE .SH "مثال تغییر دادن قطعه‌کدها (EXAMPLE OF CHANGING SNIPPETS)" برای تغییر تعریف یک متغیر، متد یا کلاس، آن را دوباره وارد کنید. .PP مثال‌های زیر تعریف یک متد و اجرای آن را نشان می‌دهد: .IP .EX jshell> String grade(int testScore) { ...> if (testScore >= 90) { ...> return \(dqPass\(dq; ...> } ...> return \(dqFail\(dq; ...> } | created method grade(int) jshell> grade(88) $3 ==> \(dqFail\(dq .EE .PP برای تغییر متد \f[CR]grade\f[R] جهت قبولی دانش‌آموزان بیشتر، تعریف متد را دوباره وارد کرده و نمره قبولی را به \f[CR]80\f[R] تغییر دهید. از کلید جهت‌نمای بالا برای بازیابی ورودی‌های پیشین استفاده کنید تا نیازی به وارد کردن دوباره آن‌ها نباشد و تغییر را در دستور \f[CR]if\f[R] اعمال کنید. مثال زیر تعریف جدید را نشان داده و متد را دوباره اجرا می‌کند تا نتیجه جدید را نمایش دهد: .IP .EX jshell> String grade(int testScore) { ...> if (testScore >= 80) { ...> return \(dqPass\(dq; ...> } ...> return \(dqFail\(dq; ...> } | modified method grade(int) jshell> grade(88) $5 ==> \(dqPass\(dq .EE .PP برای قطعه‌کدهایی که بیش از چند خط طول دارند یا برای اعمال تغییرات زیاد، از دستور \f[CR]/edit\f[R] برای باز کردن قطعه‌کد در یک ویرایشگر استفاده کنید. پس از اتمام تغییرات، پنجره ویرایش را ببندید تا کنترل به نشست JShell بازگردد. مثال زیر این دستور و بازخورد ارائه‌شده هنگام بسته شدن پنجره ویرایش را نشان می‌دهد. دستور \f[CR]/list\f[R] برای نشان دادن این که نمره قبولی به \f[CR]85\f[R] تغییر یافته، استفاده شده است. .IP .EX jshell> /edit grade | modified method grade(int) jshell> /list grade 6 : String grade(int testScore) { if (testScore >= 85) { return \(dqPass\(dq; } return \(dqFail\(dq; } .EE.SH "مثال ایجاد یک حالت بازخورد سفارشی (EXAMPLE OF CREATING A CUSTOM FEEDBACK MODE)" حالت بازخورد تعیین‌کنندهٔ اعلانِ نمایش‌داده‌شده، پیام‌های بازخورد ارائه‌شده هنگام ورود قطعه‌کدها، و حداکثر طول یک مقدار نمایش‌داده‌شده است. حالت‌های بازخورد از پیش تعریف‌شده‌ای فراهم شده‌اند. همچنین دستوراتی برای ایجاد حالت‌های بازخورد سفارشی ارائه شده است. .PP برای ایجاد یک حالت بازخورد جدید از دستور \f[CR]/set mode\f[R] استفاده کنید. در مثال زیر، حالت جدید \f[CR]mymode\f[R] بر پایهٔ حالت بازخورد از پیش تعریف‌شدهٔ \f[CR]normal\f[R] ساخته می‌شود و بازخورد تأیید دستور نمایش داده می‌شود: .IP .EX jshell> /set mode mymode normal \-command | Created new feedback mode: mymode .EE .PP از آنجا که حالت جدید بر پایهٔ حالت \f[CR]normal\f[R] است، اعلان‌ها یکسان هستند. مثال زیر نشان می‌دهد که چگونه اعلان‌های مورد استفاده را مشاهده کرده و سپس آن‌ها را به رشته‌های سفارشی تغییر دهید. رشتهٔ اول اعلان استاندارد JShell را نشان می‌دهد. رشتهٔ دوم نشان‌دهندهٔ اعلان برای خطوط بعدی در قطعه‌کدهای چندخطی است. .IP .EX jshell> /set prompt mymode | /set prompt mymode \(dq\(rsnjshell> \(dq \(dq ...> \(dq jshell> /set prompt mymode \(dq\(rsnprompt$ \(dq \(dq continue$ \(dq .EE .PP حداکثر طول یک مقدار نمایش‌داده‌شده توسط تنظیم کوتاه‌سازی (truncation) کنترل می‌شود. انواع مختلف مقادیر می‌توانند طول‌های متفاوتی داشته باشند. مثال زیر مقدار کوتاه‌سازی کلی را روی 72 و مقدار کوتاه‌سازی را برای عبارت‌های مقدار متغیر روی 500 تنظیم می‌کند: .IP .EX jshell> /set truncation mymode 72 jshell> /set truncation mymode 500 varvalue .EE .PP بازخورد نمایش‌داده‌شده پس از ورود قطعه‌کدها توسط تنظیم قالب‌بندی (format) کنترل می‌شود و بر اساس نوع قطعه‌کد واردشده و عملیات انجام‌شده روی آن است. در حالت از پیش تعریف‌شدهٔ \f[CR]normal\f[R]، هنگام ایجاد یک متد رشتهٔ \f[CR]created\f[R] نمایش داده می‌شود. مثال زیر نشان می‌دهد چگونه می‌توان این رشته را به \f[CR]defined\f[R] تغییر داد: .IP .EX jshell> /set format mymode action \(dqdefined\(dq added\-primary .EE .PP برای شروع استفاده از حالت بازخوردی که به‌تازگی ایجاد شده است، از دستور \f[CR]/set feedback\f[R] استفاده کنید. مثال زیر حالت سفارشی را در حال استفاده نشان می‌دهد: .IP .EX jshell> /set feedback mymode | Feedback mode: mymode prompt$ int square (int num1){ continue$ return num1*num1; continue$ } | defined method square(int) prompt$ .EE