.\" Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. .\" .\" This code is free software; you can redistribute it and/or modify it .\" under the terms of the GNU General Public License version 2 only, as .\" published by the Free Software Foundation. .\" .\" This code is distributed in the hope that it will be useful, but WITHOUT .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License .\" version 2 for more details (a copy is included in the LICENSE file that .\" accompanied this code). .\" .\" You should have received a copy of the GNU General Public License version .\" 2 along with this work; if not, write to the Free Software Foundation, .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. .\" .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA .\" or visit www.oracle.com if you need additional information or have any .\" questions. .\" .\"t .\" Automatically generated by Pandoc 2.3.1 .\" .TH "JSHELL" "1" "2021" "JDK 17" "JDK Commands" .hy .SH "نام (NAME)" .PP jshell \- محیط تعاملی و ابزار REPL زبان جاوا (نسخه ۱۷) .SH "خلاصه دستور (SYNOPSIS)" .PP \f[CB]jshell\f[R] [\f[I]گزینه‌ها\f[R]] [\f[I]فایل‌های\-بارگذاری\f[R]] .TP .B \f[I]گزینه‌ها\f[R] گزینه‌های خط فرمان که با فاصله از هم جدا می‌شوند. بخش \f[B]گزینه‌های jshell\f[R] را ببینید. .RS .RE .TP .B \f[I]فایل‌های\-بارگذاری\f[R] یک یا چند اسکریپت که هنگام شروع ابزار اجرا می‌شوند. اسکریپت‌ها می‌توانند شامل هر قطعه‌کد معتبر یا دستورات JShell باشند. .RS .PP اسکریپت می‌تواند یک فایل محلی یا یکی از اسکریپت‌های از پیش تعریف‌شده زیر باشد: .TP .B \f[CB]DEFAULT\f[R] موردهای پیش‌فرض را بارگذاری می‌کند که معمولاً به عنوان import استفاده می‌شوند. .RS .RE .TP .B \f[CB]JAVASE\f[R] تمام بسته‌های Java SE را ایمپورت می‌کند. .RS .RE .TP .B \f[CB]PRINTING\f[R] متدهای \f[CB]print\f[R]، \f[CB]println\f[R] و \f[CB]printf\f[R] را به عنوان متدهای \f[CB]jshell\f[R] برای استفاده درون ابزار تعریف می‌کند. .RS .RE .PP برای بیش از یک اسکریپت، از فاصله برای جداسازی نام‌ها استفاده کنید. اسکریپت‌ها به ترتیبی که در خط فرمان وارد شده‌اند اجرا می‌شوند. اسکریپت‌های خط فرمان پس از اسکریپت‌های راه‌اندازی (startup) اجرا می‌شوند. برای اجرای یک اسکریپت پس از شروع JShell، از دستور \f[CB]/open\f[R] استفاده کنید. .PP برای پذیرش ورودی از ورودی استاندارد (standard input) و غیرفعال کردن I/O تعاملی، یک خط تیره (\-) برای \f[I]فایل‌های\-بارگذاری\f[R] وارد کنید. این گزینه استفاده از ابزار \f[CB]jshell\f[R] را در زنجیره لوله‌ها (pipe chains) ممکن می‌سازد. .RE .SH "توضیحات (DESCRIPTION)" .PP ابزار JShell روشی برای ارزیابی تعاملی اعلان‌ها، دستورات و عبارت‌های زبان برنامه‌نویسی جاوا فراهم می‌کند که یادگیری زبان، کاوش در کدها و APIهای ناآشنا و ساخت پیش‌نمونه‌های کد پیچیده را آسان‌تر می‌سازد. دستورات جاوا، تعاریف متغیرها، تعاریف متدها، تعاریف کلاس‌ها، دستورات import و عبارت‌ها پذیرفته می‌شوند. به قطعات کد واردشده قطعه‌کد (snippet) گفته می‌شود. .PP با ورود قطعه‌کدها، آن‌ها ارزیابی شده و بازخورد ارائه می‌شود. بازخورد بسته به قطعه‌کد واردشده و حالت بازخورد انتخاب‌شده، از نتایج و توضیحات عملیات تا هیچ چیز متغیر است. خطاها صرف‌نظر از حالت بازخورد شرح داده می‌شوند. برای دریافت بیشترین بازخورد هنگام یادگیری ابزار، با حالت پرگو (\f[CB]verbose\f[R]) شروع کنید. .PP گزینه‌های خط فرمان برای پیکربندی محیط اولیه هنگام شروع JShell در دسترس هستند. درون JShell، دستوراتی برای اصلاح محیط در صورت نیاز وجود دارد. .PP قطعه‌کدهای موجود را می‌توان از یک فایل برای مقداردهی اولیه نشست JShell یا در هر زمانی درون یک نشست بارگذاری کرد. قطعه‌کدها را می‌توان درون نشست تغییر داد تا حالت‌های مختلف آزمایش شوند و اصلاحات انجام گیرد. برای نگهداری قطعه‌کدها جهت استفاده بعدی، آن‌ها را در یک فایل ذخیره کنید. .SH "گزینه‌های JSHELL (OPTIONS FOR JSHELL)" .TP .B \f[CB]\-\-add\-exports\f[R] \f[I]module\f[R]/\f[I]package\f[R] بسته‌ای را مشخص می‌کند که باید از ماژول تعریف‌کننده‌اش اکسپورت‌شده تلقی شود. .RS .RE .TP .B \f[CB]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CB],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را مشخص می‌کند که علاوه بر ماژول اولیه باید حل (resolve) شوند. .RS .RE .TP .B \f[CB]\-C\f[R]\f[I]flag\f[R] فلگی را برای ارسال به کامپایلر فراهم می‌کند. برای ارسال بیش از یک فلگ، برای هر فلگ یا آرگومان فلگ مورد نیاز، یک نمونه از این گزینه ارائه دهید. .RS .RE .TP .B \f[CB]\-\-class\-path\f[R] \f[I]path\f[R] پوشه‌ها و آرشیوهایی را مشخص می‌کند که برای یافتن فایل‌های کلاس جستجو می‌شوند. این گزینه مسیر موجود در متغیر محیطی \f[CB]CLASSPATH\f[R] را بازنویسی می‌کند. اگر متغیر محیطی تنظیم نشده باشد و از این گزینه استفاده نشود، پوشه جاری جستجو می‌شود. برای لینوکس و macOS از دو نقطه (:) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (;) برای جداسازی موارد استفاده کنید. .RS .RE .TP .B \f[CB]\-\-enable\-preview\f[R] امکان وابستگی کد به قابلیت‌های پیش‌نمایش (preview features) این نسخه را فراهم می‌کند. .RS .RE .TP .B \f[CB]\-\-execution\f[R] \f[I]specification\f[R] یک موتور اجرای جایگزین را مشخص می‌کند، که در آن \f[I]specification\f[R] یک مشخصه ExecutionControl است. برای ساختار نحوی این مشخصه، مستندات بسته jdk.jshell.spi را ببینید. .RS .RE .TP .B \f[CB]\-\-feedback\f[R] \f[I]mode\f[R] سطح اولیه بازخورد ارائه‌شده در پاسخ به ورودی‌ها را تنظیم می‌کند. سطح اولیه را می‌توان درون نشست با استفاده از دستور \f[CB]/set\ feedback\f[R] \f[I]mode\f[R] تغییر داد. مقدار پیش‌فرض \f[CB]normal\f[R] است. .RS .PP مقادیر زیر برای \f[I]mode\f[R] معتبر هستند: .TP .B \f[CB]verbose\f[R] بازخورد با جزئیات کامل برای ورودی‌ها ارائه می‌دهد. اطلاعات تکمیلی درباره عملیات انجام‌شده پس از نتیجه عملیات نمایش داده می‌شود. اعلان (prompt) بعدی با یک خط خالی از بازخورد جدا می‌شود. .RS .RE .TP .B \f[CB]normal\f[R] میزان متوسطی از بازخورد را ارائه می‌دهد. اعلان بعدی با یک خط خالی از بازخورد جدا می‌شود. .RS .RE .TP .B \f[CB]concise\f[R] حداقل بازخورد را ارائه می‌دهد. اعلان بعدی بلافاصله پس از قطعه‌کد یا بازخورد می‌آید. .RS .RE .TP .B \f[CB]silent\f[R] هیچ بازخوردی ارائه نمی‌دهد. اعلان بعدی بلافاصله پس از قطعه‌کد می‌آید. .RS .RE .TP .B \f[I]custom\f[R] بازخورد سفارشی بر اساس نحوه تعریف حالت ارائه می‌دهد. حالت‌های بازخورد سفارشی درون JShell با استفاده از دستور \f[CB]/set\ mode\f[R] ایجاد می‌شوند. .RS .RE .RE .TP .B \f[CB]\-\-help\f[R] یا \f[CB]\-h\f[R] یا \f[CB]\-?\f[R] خلاصه‌ای از گزینه‌های استاندارد را چاپ کرده و از ابزار خارج می‌شود. .RS .RE .TP .B \f[CB]\-\-help\-extra\f[R] یا \f[CB]\-X\f[R] خلاصه‌ای از گزینه‌های غیراستاندارد را چاپ کرده و از ابزار خارج می‌شود. گزینه‌های غیراستاندارد بدون اطلاع قبلی ممکن است تغییر کنند. .RS .RE .TP .B \f[CB]\-J\f[R]\f[I]flag\f[R] فلگی را برای ارسال به سیستم زمان اجرا (runtime system) فراهم می‌کند. برای ارسال بیش از یک فلگ، برای هر فلگ یا آرگومان فلگ مورد نیاز، یک نمونه از این گزینه ارائه دهید. .RS .RE .TP .B \f[CB]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای لینوکس و macOS از دو نقطه (:) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (;) برای جداسازی موارد استفاده کنید. .RS .RE .TP .B \f[CB]\-\-no\-startup\f[R] از اجرای اسکریپت‌های راه‌اندازی هنگام شروع JShell جلوگیری می‌کند. از این گزینه برای اجرای تنها اسکریپت‌های واردشده در خط فرمان هنگام شروع JShell، یا شروع JShell بدون هیچ اطلاعات از پیش بارگذاری‌شده در صورت عدم ورود اسکریپت، استفاده کنید. در صورت استفاده از گزینه \f[CB]\-\-startup\f[R]، این گزینه قابل استفاده نیست. .RS .RE .TP .B \f[CB]\-q\f[R] حالت بازخورد را روی \f[CB]concise\f[R] تنظیم می‌کند که معادل وارد کردن \f[CB]\-\-feedback\ concise\f[R] است. .RS .RE .TP .B \f[CB]\-R\f[R]\f[I]flag\f[R] فلگی را برای ارسال به سیستم زمان اجرای راه دور (remote runtime system) فراهم می‌کند. برای ارسال بیش از یک فلگ، برای هر فلگ یا آرگومان فلگ، یک نمونه از این گزینه ارائه دهید. .RS .RE .TP .B \f[CB]\-s\f[R] حالت بازخورد را روی \f[CB]silent\f[R] تنظیم می‌کند که معادل وارد کردن \f[CB]\-\-feedback\ silent\f[R] است. .RS .RE .TP .B \f[CB]\-\-show\-version\f[R] اطلاعات نسخه را چاپ کرده و وارد ابزار می‌شود. .RS .RE .TP .B \f[CB]\-\-startup\f[R] \f[I]file\f[R] اسکریپت راه‌اندازی پیش‌فرض را برای این نشست بازنویسی می‌کند. اسکریپت می‌تواند شامل هر قطعه‌کد یا دستور معتبر باشد. .RS .PP اسکریپت می‌تواند یک فایل محلی یا یکی از اسکریپت‌های از پیش تعریف‌شده زیر باشد: .TP .B \f[CB]DEFAULT\f[R] موردهای پیش‌فرض را بارگذاری می‌کند که معمولاً به عنوان import استفاده می‌شوند. .RS .RE .TP .B \f[CB]JAVASE\f[R] تمام بسته‌های Java SE را ایمپورت می‌کند. .RS .RE .TP .B \f[CB]PRINTING\f[R] متدهای \f[CB]print\f[R]، \f[CB]println\f[R] و \f[CB]printf\f[R] را به عنوان متدهای \f[CB]jshell\f[R] برای استفاده درون ابزار تعریف می‌کند. .RS .RE .PP برای بیش از یک اسکریپت، یک نمونه جداگانه از این گزینه برای هر اسکریپت ارائه دهید. اسکریپت‌های راه‌اندازی هنگام شروع اولیه JShell و هنگامی که نشست با دستورات \f[CB]/reset\f[R]، \f[CB]/reload\f[R] یا \f[CB]/env\f[R] راه‌اندازی مجدد می‌شود، اجرا می‌گردند. اسکریپت‌های راه‌اندازی به ترتیبی که در خط فرمان وارد شده‌اند اجرا می‌شوند. .PP در صورت استفاده از گزینه \f[CB]\-\-no\-startup\f[R]، این گزینه قابل استفاده نیست. .RE .TP .B \f[CB]\-v\f[R] حالت بازخورد را روی \f[CB]verbose\f[R] تنظیم می‌کند که معادل وارد کردن \f[CB]\-\-feedback\ verbose\f[R] است. .RS .RE .TP .B \f[CB]\-\-version\f[R] اطلاعات نسخه را چاپ کرده و از ابزار خارج می‌شود. .RS .RE .SH "دستورات JSHELL (JSHELL COMMANDS)" .PP درون ابزار \f[CB]jshell\f[R]، دستورات برای اصلاح محیط و مدیریت قطعه‌کدها به کار می‌روند. .TP .B \f[CB]/drop\f[R] {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدهای مشخص‌شده با نام، شناسه (ID) یا بازه‌ای از شناسه‌ها را حذف (drop) کرده و آن‌ها را غیرفعال می‌کند. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیستی از موارد، آن‌ها را با فاصله جدا نمایید. برای مشاهده شناسه‌های قطعه‌کدها از دستور \f[CB]/list\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]/edit\f[R] [\f[I]option\f[R]] یک ویرایشگر باز می‌کند. اگر گزینه‌ای وارد نشود، ویرایشگر با قطعه‌کدهای فعال باز می‌شود. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] ویرایشگر را با قطعه‌کدهای مشخص‌شده با نام، شناسه یا بازه شناسه باز می‌کند. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیست، موارد را با فاصله جدا نمایید. برای دیدن شناسه‌های قطعه‌کدها از دستور \f[CB]/list\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]\-all\f[R] ویرایشگر را با تمام قطعه‌کدها باز می‌کند، از جمله قطعه‌کدهای راه‌اندازی و قطعه‌کدهایی که ناموفق بوده‌اند، بازنویسی شده‌اند یا حذف شده‌اند. .RS .RE .TP .B \f[CB]\-start\f[R] ویرایشگر را با قطعه‌کدهای راه‌اندازی که هنگام شروع JShell ارزیابی شده‌اند باز می‌کند. .RS .RE .PP برای خروج از حالت ویرایش، پنجره ویرایشگر را ببندید، یا در صورتی که هنگام تنظیم ویرایشگر از گزینه \f[CB]\-wait\f[R] استفاده شده باشد، به اعلان نمایش داده‌شده پاسخ دهید. .PP برای تعیین ویرایشگر مورد استفاده، از دستور \f[CB]/set\ editor\f[R] استفاده کنید. اگر هیچ ویرایشگری تنظیم نشده باشد، متغیرهای محیطی زیر به ترتیب بررسی می‌شوند: \f[CB]JSHELLEDITOR\f[R]، \f[CB]VISUAL\f[R] و \f[CB]EDITOR\f[R]. اگر هیچ ویرایشگری در JShell تنظیم نشده باشد و هیچ‌یک از متغیرهای محیطی ویرایشگر نیز مقدار نداشته باشند، از یک ویرایشگر پیش‌فرض ساده استفاده می‌شود. .RE .TP .B \f[CB]/env\f[R] [\f[I]options\f[R]] تنظیمات محیط را نمایش می‌دهد، یا تنظیمات محیط را به‌روزرسانی کرده و نشست را مجدداً راه‌اندازی می‌کند. اگر گزینه‌ای وارد نشود، تنظیمات فعلی محیط نمایش داده می‌شود. اگر یک یا چند گزینه وارد شود، نشست به شرح زیر مجدداً راه‌اندازی می‌شود: .RS .IP \[bu] 2 تنظیمات محیط را با گزینه‌های ارائه‌شده به‌روزرسانی می‌کند. .IP \[bu] 2 وضعیت اجرا را بازنشانی می‌کند. .IP \[bu] 2 اسکریپت‌های راه‌اندازی را اجرا می‌کند. .IP \[bu] 2 تاریخچه را به ترتیبی که وارد شده‌اند در پس‌زمینه بازپخش (replay) می‌کند. تاریخچه شامل تمام قطعه‌کدهای معتبر یا دستورات \f[CB]/drop\f[R] واردشده در اعلان \f[CB]jshell\f[R]، در اسکریپت‌های واردشده در خط فرمان، یا اسکریپت‌های واردشده با دستور \f[CB]/open\f[R] است. .PP تنظیمات محیط که در خط فرمان وارد شده‌اند یا با دستور قبلی \f[CB]/reset\f[R]، \f[CB]/env\f[R] یا \f[CB]/reload\f[R] ارائه شده‌اند، حفظ می‌شوند مگر اینکه گزینه‌ای (\f[I]option\f[R]) وارد شود که آن تنظیم را بازنویسی کند. .PP گزینه‌های زیر معتبر هستند: .TP .B \f[CB]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CB],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را مشخص می‌کند که علاوه بر ماژول اولیه باید حل شوند. .RS .RE .TP .B \f[CB]\-\-add\-exports\f[R] \f[I]source\-module\f[R]\f[CB]/\f[R]\f[I]package\f[R]\f[CB]=\f[R]\f[I]target\-module\f[R][\f[CB],\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] اضافه می‌کند. .RS .RE .TP .B \f[CB]\-\-class\-path\f[R] \f[I]path\f[R] پوشه‌ها و آرشیوهایی را مشخص می‌کند که برای یافتن فایل‌های کلاس جستجو می‌شوند. این گزینه مسیر موجود در متغیر محیطی \f[CB]CLASSPATH\f[R] را بازنویسی می‌کند. اگر متغیر محیطی تنظیم نشده باشد و از این گزینه استفاده نشود، پوشه جاری جستجو می‌شود. برای لینوکس و macOS از دو نقطه (\f[CB]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (\f[CB];\f[R]) برای جداسازی موارد استفاده کنید. .RS .RE .TP .B \f[CB]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای لینوکس و macOS از دو نقطه (\f[CB]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (\f[CB];\f[R]) برای جداسازی موارد استفاده کنید. .RS .RE .RE .TP .B \f[CB]/exit\f[R] [\f[I]integer\-expression\-snippet\f[R]] از ابزار خارج می‌شود. اگر قطعه‌کدی وارد نشود، وضعیت خروج صفر خواهد بود. اگر قطعه‌کدی وارد شود و نتیجه آن یک عدد صحیح باشد، آن نتیجه به عنوان وضعیت خروج استفاده می‌شود. اگر خطایی رخ دهد یا نتیجه قطعه‌کد عدد صحیح نباشد، خطا نمایش داده شده و ابزار فعال باقی می‌ماند. .RS .RE .TP .B \f[CB]/history\f[R] آنچه در این نشست وارد شده است را نمایش می‌دهد. .RS .RE .TP .B \f[CB]/help\f[R] [\f[I]command\f[R]|\f[I]subject\f[R]] اطلاعاتی درباره دستورات و موضوعات نمایش می‌دهد. اگر گزینه‌ای وارد نشود، خلاصه‌ای از اطلاعات همه دستورات و فهرستی از موضوعات موجود نمایش داده می‌شود. اگر دستوری معتبر ارائه شود، اطلاعات تفصیلی مربوط به آن دستور نمایش می‌یابد. اگر موضوعی معتبر وارد شود، اطلاعات مربوط به آن موضوع نمایش داده می‌شود. .RS .PP مقادیر زیر برای \f[I]subject\f[R] معتبر هستند: .TP .B \f[CB]context\f[R] گزینه‌های موجود برای پیکربندی محیط را شرح می‌دهد. .RS .RE .TP .B \f[CB]intro\f[R] مقدمه‌ای بر این ابزار ارائه می‌دهد. .RS .RE .TP .B \f[CB]shortcuts\f[R] کلیدهای میانبر برای تکمیل دستورات و قطعه‌کدها را شرح می‌دهد. بخش \f[B]میانبرهای ورودی\f[R] را ببینید. .RS .RE .RE .TP .B \f[CB]/imports\f[R] ایمپورت‌های فعال فعلی را نمایش می‌دهد، از جمله مواردی که از اسکریپت‌های راه‌اندازی و اسکریپت‌های واردشده در خط فرمان هنگام شروع JShell آمده‌اند. .RS .RE .TP .B \f[CB]/list\f[R] [\f[I]option\f[R]] فهرستی از قطعه‌کدها و شناسه‌های آن‌ها را نمایش می‌دهد. اگر گزینه‌ای وارد نشود، تمام قطعه‌کدهای فعال نمایش داده می‌شوند، اما قطعه‌کدهای راه‌اندازی نشان داده نمی‌شوند. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدهای مشخص‌شده با نام، شناسه یا بازه شناسه را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیست، موارد را با فاصله جدا نمایید. .RS .RE .TP .B \f[CB]\-all\f[R] تمام قطعه‌کدها را نمایش می‌دهد، از جمله قطعه‌کدهای راه‌اندازی و قطعه‌کدهایی که ناموفق بوده‌اند، بازنویسی شده‌اند یا حذف شده‌اند. شناسه‌هایی که با \f[CB]s\f[R] شروع می‌شوند، قطعه‌کدهای راه‌اندازی هستند. شناسه‌هایی که با \f[CB]e\f[R] شروع می‌شوند، قطعه‌کدهای ناموفق هستند. .RS .RE .TP .B \f[CB]\-start\f[R] قطعه‌کدهای راه‌اندازی که هنگام شروع JShell ارزیابی شده‌اند را نمایش می‌دهد. .RS .RE .RE .TP .B \f[CB]/methods\f[R] [\f[I]option\f[R]] اطلاعاتی درباره متدهای واردشده نمایش می‌دهد. اگر گزینه‌ای وارد نشود، نام، نوع پارامترها و نوع بازگشتی همه متدهای فعال نمایش داده می‌شود. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] اطلاعات متدهای مشخص‌شده با نام، شناسه یا بازه شناسه را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیست، موارد را با فاصله جدا نمایید. برای دیدن شناسه‌های قطعه‌کدها از دستور \f[CB]/list\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]\-all\f[R] اطلاعات تمام متدها را نمایش می‌دهد، از جمله متدهایی که هنگام شروع JShell اضافه شده‌اند و متدهایی که ناموفق بوده‌اند، بازنویسی شده‌اند یا حذف شده‌اند. .RS .RE .TP .B \f[CB]\-start\f[R] اطلاعات متدهای راه‌اندازی که هنگام شروع JShell اضافه شده‌اند را نمایش می‌دهد. .RS .RE .RE .TP .B \f[CB]/open\f[R] \f[I]file\f[R] اسکریپت مشخص‌شده را باز کرده و قطعه‌کدهای آن را درون ابزار می‌خواند. اسکریپت می‌تواند یک فایل محلی یا یکی از اسکریپت‌های از پیش تعریف‌شده زیر باشد: .RS .TP .B \f[CB]DEFAULT\f[R] موردهای پیش‌فرض را بارگذاری می‌کند که معمولاً به عنوان import استفاده می‌شوند. .RS .RE .TP .B \f[CB]JAVASE\f[R] تمام بسته‌های Java SE را ایمپورت می‌کند. .RS .RE .TP .B \f[CB]PRINTING\f[R] متدهای \f[CB]print\f[R]، \f[CB]println\f[R] و \f[CB]printf\f[R] را به عنوان متدهای \f[CB]jshell\f[R] برای استفاده درون ابزار تعریف می‌کند. .RS .RE .RE .TP .B \f[CB]/reload\f[R] [\f[I]options\f[R]] نشست را به شرح زیر مجدداً راه‌اندازی می‌کند: .RS .IP \[bu] 2 تنظیمات محیط را با گزینه‌های ارائه‌شده (در صورت وجود) به‌روزرسانی می‌کند. .IP \[bu] 2 وضعیت اجرا را بازنشانی می‌کند. .IP \[bu] 2 اسکریپت‌های راه‌اندازی را اجرا می‌کند. .IP \[bu] 2 تاریخچه را به ترتیبی که وارد شده‌اند بازپخش می‌کند. تاریخچه شامل تمام قطعه‌کدهای معتبر یا دستورات \f[CB]/drop\f[R] واردشده در اعلان \f[CB]jshell\f[R]، در اسکریپت‌های واردشده در خط فرمان، یا اسکریپت‌های واردشده با دستور \f[CB]/open\f[R] است. .PP تنظیمات محیط که در خط فرمان وارد شده‌اند یا با دستور قبلی \f[CB]/reset\f[R]، \f[CB]/env\f[R] یا \f[CB]/reload\f[R] ارائه شده‌اند، حفظ می‌شوند مگر اینکه گزینه‌ای (\f[I]option\f[R]) وارد شود که آن تنظیم را بازنویسی کند. .PP گزینه‌های زیر معتبر هستند: .TP .B \f[CB]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CB],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را مشخص می‌کند که علاوه بر ماژول اولیه باید حل شوند. .RS .RE .TP .B \f[CB]\-\-add\-exports\f[R] \f[I]source\-module\f[R]\f[CB]/\f[R]\f[I]package\f[R]\f[CB]=\f[R]\f[I]target\-module\f[R][\f[CB],\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] اضافه می‌کند. .RS .RE .TP .B \f[CB]\-\-class\-path\f[R] \f[I]path\f[R] پوشه‌ها و آرشیوهایی را مشخص می‌کند که برای یافتن فایل‌های کلاس جستجو می‌شوند. این گزینه مسیر موجود در متغیر محیطی \f[CB]CLASSPATH\f[R] را بازنویسی می‌کند. اگر متغیر محیطی تنظیم نشده باشد و از این گزینه استفاده نشود، پوشه جاری جستجو می‌شود. برای لینوکس و macOS از دو نقطه (\f[CB]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (\f[CB];\f[R]) برای جداسازی موارد استفاده کنید. .RS .RE .TP .B \f[CB]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای لینوکس و macOS از دو نقطه (\f[CB]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (\f[CB];\f[R]) برای جداسازی موارد استفاده کنید. .RS .RE .TP .B \f[CB]\-quiet\f[R] تاریخچه معتبر را بدون نمایش آن بازپخش می‌کند. خطاها نمایش داده می‌شوند. .RS .RE .TP .B \f[CB]\-restore\f[R] محیط را به وضعیت ابتدای اجرای قبلی ابزار یا به آخرین باری که دستور \f[CB]/reset\f[R]، \f[CB]/reload\f[R] یا \f[CB]/env\f[R] در اجرای قبلی انجام شده بود، بازنشانی می‌کند. تاریخچه معتبر از آن نقطه به بعد بازپخش می‌شود. از این گزینه برای بازیابی نشست قبلی JShell استفاده کنید. .RS .RE .RE .TP .B \f[CB]/reset\f[R] [\f[I]options\f[R]] تمام قطعه‌کدهای واردشده را دور ریخته و نشست را به شرح زیر مجدداً راه‌اندازی می‌کند: .RS .IP \[bu] 2 تنظیمات محیط را با گزینه‌های ارائه‌شده (در صورت وجود) به‌روزرسانی می‌کند. .IP \[bu] 2 وضعیت اجرا را بازنشانی می‌کند. .IP \[bu] 2 اسکریپت‌های راه‌اندازی را اجرا می‌کند. .PP تاریخچه بازپخش نمی‌شود. تمام کدهایی که وارد شده بودند از دست می‌روند. .PP تنظیمات محیط که در خط فرمان وارد شده‌اند یا با دستور قبلی \f[CB]/reset\f[R]، \f[CB]/env\f[R] یا \f[CB]/reload\f[R] ارائه شده‌اند، حفظ می‌شوند مگر اینکه گزینه‌ای (\f[I]option\f[R]) وارد شود که آن تنظیم را بازنویسی کند. .PP گزینه‌های زیر معتبر هستند: .TP .B \f[CB]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CB],\f[R]\f[I]module\f[R]...] ماژول‌های ریشه را مشخص می‌کند که علاوه بر ماژول اولیه باید حل شوند. .RS .RE .TP .B \f[CB]\-\-add\-exports\f[R] \f[I]source\-module\f[R]\f[CB]/\f[R]\f[I]package\f[R]\f[CB]=\f[R]\f[I]target\-module\f[R][\f[CB],\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] اضافه می‌کند. .RS .RE .TP .B \f[CB]\-\-class\-path\f[R] \f[I]path\f[R] پوشه‌ها و آرشیوهایی را مشخص می‌کند که برای یافتن فایل‌های کلاس جستجو می‌شوند. این گزینه مسیر موجود در متغیر محیطی \f[CB]CLASSPATH\f[R] را بازنویسی می‌کند. اگر متغیر محیطی تنظیم نشده باشد و از این گزینه استفاده نشود، پوشه جاری جستجو می‌شود. برای لینوکس و macOS از دو نقطه (\f[CB]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (\f[CB];\f[R]) برای جداسازی موارد استفاده کنید. .RS .RE .TP .B \f[CB]\-\-module\-path\f[R] \f[I]modulepath\f[R] محل یافتن ماژول‌های برنامه را مشخص می‌کند. برای لینوکس و macOS از دو نقطه (\f[CB]:\f[R]) برای جداسازی موارد در مسیر استفاده کنید. برای ویندوز از نقطه ویرگول (\f[CB];\f[R]) برای جداسازی موارد استفاده کنید. .RS .RE .RE .TP .B \f[CB]/save\f[R] [\f[I]options\f[R]] \f[I]file\f[R] قطعه‌کدها و دستورات را در فایل مشخص‌شده ذخیره می‌کند. اگر گزینه‌ای وارد نشود، قطعه‌کدهای فعال ذخیره می‌شوند. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدها و دستورات مشخص‌شده با نام، شناسه یا بازه شناسه را ذخیره می‌کند. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیست، موارد را با فاصله جدا نمایید. برای دیدن شناسه‌های قطعه‌کدها از دستور \f[CB]/list\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]\-all\f[R] تمام قطعه‌کدها را ذخیره می‌کند، از جمله قطعه‌کدهای راه‌اندازی و قطعه‌کدهایی که بازنویسی شده یا ناموفق بوده‌اند. .RS .RE .TP .B \f[CB]\-history\f[R] تاریخچه ترتیبی تمام دستورات و قطعه‌کدهای واردشده در نشست جاری را ذخیره می‌کند. .RS .RE .TP .B \f[CB]\-start\f[R] تنظیمات راه‌اندازی جاری را ذخیره می‌کند. اگر هیچ اسکریپت راه‌اندازی ارائه نشده باشد، یک فایل خالی ذخیره می‌شود. .RS .RE .RE .TP .B \f[CB]/set\f[R] [\f[I]setting\f[R]] اطلاعات پیکربندی، شامل ویرایشگر خارجی، تنظیمات راه‌اندازی و حالت بازخورد را تنظیم می‌کند. این دستور همچنین برای ایجاد یک حالت بازخورد سفارشی با مقادیر سفارشی اعلان، قالب‌بندی و کوتاه‌سازی به کار می‌رود. اگر تنظیمی وارد نشود، تنظیمات فعلی برای ویرایشگر، تنظیمات راه‌اندازی و حالت بازخورد نمایش داده می‌شوند. .RS .PP مقادیر زیر برای \f[CB]setting\f[R] معتبر هستند: .TP .B \f[CB]editor\f[R] [\f[I]options\f[R]] [\f[I]command\f[R]] دستور مورد استفاده برای شروع یک ویرایشگر خارجی را هنگام وارد کردن دستور \f[CB]/edit\f[R] تنظیم می‌کند. دستور می‌تواند شامل آرگومان‌های دستور باشد که با فاصله جدا شده‌اند. اگر هیچ دستور یا گزینه‌ای وارد نشود، تنظیم جاری نمایش داده می‌شود. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B \f[CB]\-default\f[R] ویرایشگر را روی ویرایشگر پیش‌فرض ارائه‌شده همراه با JShell تنظیم می‌کند. در صورت وارد کردن دستوری برای شروع ویرایشگر، این گزینه قابل استفاده نیست. .RS .RE .TP .B \f[CB]\-delete\f[R] ویرایشگر را روی ویرایشگری تنظیم می‌کند که هنگام شروع نشست فعال بود. اگر همراه با گزینه \f[CB]\-retain\f[R] استفاده شود، تنظیم ویرایشگر نگهداری‌شده حذف شده و ویرایشگر روی اولین متغیر محیطی از متغیرهای زیر که یافت شود تنظیم می‌گردد: \f[CB]JSHELLEDITOR\f[R]، \f[CB]VISUAL\f[R] یا \f[CB]EDITOR\f[R]. اگر هیچ‌یک از متغیرهای محیطی ویرایشگر تنظیم نشده باشند، این گزینه ویرایشگر را روی ویرایشگر پیش‌فرض قرار می‌دهد. .RS .PP در صورت وارد کردن دستوری برای شروع ویرایشگر، این گزینه قابل استفاده نیست. .RE .TP .B \f[CB]\-retain\f[R] تنظیم ویرایشگر را برای نشست‌های بعدی ذخیره می‌کند. اگر گزینه یا دستور دیگری وارد نشود، تنظیم جاری ذخیره می‌شود. .RS .RE .TP .B \f[CB]\-wait\f[R] از کاربر می‌خواهد تا پایان ویرایش را اعلام کند. در غیر این صورت، پس از خروج ویرایشگر، کنترل به JShell بازمی‌گردد. اگر ویرایشگر مورد استفاده بلافاصله خارج می‌شود (مثلاً زمانی که پنجره ویرایشگر از قبل باز است)، از این گزینه استفاده کنید. این گزینه فقط زمانی معتبر است که دستوری برای شروع ویرایشگر وارد شده باشد. .RS .RE .RE .TP .B \f[CB]feedback\f[R] [\f[I]mode\f[R]] حالت بازخورد مورد استفاده در پاسخ به ورودی را تنظیم می‌کند. اگر حالتی وارد نشود، حالت فعلی نمایش داده می‌شود. .RS .PP حالت‌های زیر معتبر هستند: \f[CB]concise\f[R]، \f[CB]normal\f[R]، \f[CB]silent\f[R]، \f[CB]verbose\f[R] و هر حالت سفارشی ایجادشده با دستور \f[CB]/set\ mode\f[R]. .RE .TP .B \f[CB]format\f[R] \f[I]mode\f[R] \f[I]field\f[R] \f[CB]"\f[R]\f[I]format\-string\f[R]\f[CB]"\f[R] \f[I]selector\f[R] قالب بازخورد ارائه‌شده در پاسخ به ورودی را تنظیم می‌کند. اگر حالتی وارد نشود، قالب‌های فعلی برای تمام فیلدها در همه حالت‌های بازخورد نمایش داده می‌شوند. اگر فقط یک حالت وارد شود، قالب‌های فعلی برای آن حالت نمایش می‌یابند. اگر فقط حالت و فیلد وارد شوند، قالب‌های فعلی برای آن فیلد نمایش داده می‌شوند. .RS .PP برای تعریف یک قالب، آرگومان‌های زیر الزامی هستند: .TP .B \f[I]mode\f[R] حالت بازخوردی را مشخص می‌کند که قالب پاسخ بر آن اعمال می‌شود. تنها حالت‌های سفارشی ایجادشده با دستور \f[CB]/set\ mode\f[R] قابل تغییر هستند. .RS .RE .TP .B \f[I]field\f[R] فیلد وابسته به زمینه‌ای را مشخص می‌کند که قالب پاسخ بر آن اعمال می‌شود. فیلدها در راهنمای برخط شرح داده شده‌اند که از طریق JShell با دستور \f[CB]/help\ /set\ format\f[R] در دسترس است. .RS .RE .TP .B \f[CB]"\f[R]\f[I]format\-string\f[R]\f[CB]"\f[R] رشته‌ای را مشخص می‌کند که به عنوان قالب پاسخ برای فیلد و گزینش‌گر (selector) تعیین‌شده استفاده می‌شود. ساختار رشته قالب در راهنمای برخط شرح داده شده است که از طریق JShell با دستور \f[CB]/help\ /set\ format\f[R] در دسترس است. .RS .RE .TP .B \f[I]selector\f[R] زمینه‌ای را مشخص می‌کند که در آن قالب پاسخ اعمال می‌شود. گزینش‌گرها در راهنمای برخط شرح داده شده‌اند که از طریق JShell با دستور \f[CB]/help\ /set\ format\f[R] در دسترس است. .RS .RE .RE .TP .B \f[CB]mode\f[R] [\f[I]mode\-name\f[R]] [\f[I]existing\-mode\f[R]] [\f[I]options\f[R]] یک حالت بازخورد سفارشی با نام حالت ارائه‌شده ایجاد می‌کند. اگر نام حالتی وارد نشود، تنظیمات همه حالت‌ها نمایش داده می‌شود که شامل تنظیمات حالت، اعلان، قالب و کوتاه‌سازی است. اگر نام یک حالت موجود ارائه شود، تنظیمات آن حالت موجود در حالت در حال ساخت کپی می‌شود. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B \f[CB]\-command\f[R]|\f[CB]\-quiet\f[R] سطح بازخورد نمایش داده‌شده برای دستورات هنگام استفاده از این حالت را مشخص می‌کند. این گزینه هنگام ایجاد یک حالت بازخورد الزامی است. از \f[CB]\-command\f[R] برای نمایش اطلاعات و بازخورد اعتبارسنجی برای دستورات استفاده کنید. از \f[CB]\-quiet\f[R] برای نمایش تنها بازخوردهای ضروری برای دستورات، مانند پیام‌های خطا، استفاده کنید. .RS .RE .TP .B \f[CB]\-delete\f[R] حالت بازخورد نام‌برده‌شده را برای این نشست حذف می‌کند. نام حالتی که باید حذف شود الزامی است. برای حذف دائمی یک حالت نگهداری‌شده، از گزینه \f[CB]\-retain\f[R] همراه با این گزینه استفاده کنید. حالت‌های از پیش تعریف‌شده قابل حذف نیستند. .RS .RE .TP .B \f[CB]\-retain\f[R] حالت بازخورد نام‌برده‌شده را در طول نشست‌ها ذخیره می‌کند. نام حالتی که باید نگهداری شود الزامی است. .RS .RE .PP حالت بازخورد جدید را با استفاده از دستورات \f[CB]/set\ prompt\f[R]، \f[CB]/set\ format\f[R] و \f[CB]/set\ truncation\f[R] پیکربندی کنید. .PP برای شروع استفاده از حالت جدید، از دستور \f[CB]/set\ feedback\f[R] استفاده کنید. .RE .TP .B \f[CB]prompt\f[R] \f[I]mode\f[R] \f[CB]"\f[R]\f[I]prompt\-string\f[R]\f[CB]"\f[R] \f[CB]"\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CB]"\f[R] اعلان‌ها را برای ورودی درون JShell تنظیم می‌کند. اگر حالتی وارد نشود، اعلان‌های فعلی برای تمام حالت‌های بازخورد نمایش داده می‌شوند. اگر فقط یک حالت وارد شود، اعلان‌های فعلی برای آن حالت نمایش می‌یابند. .RS .PP برای تعریف اعلان، آرگومان‌های زیر الزامی هستند: .TP .B \f[I]mode\f[R] حالت بازخوردی را مشخص می‌کند که اعلان‌ها بر آن اعمال می‌شوند. تنها حالت‌های سفارشی ایجادشده با دستور \f[CB]/set\ mode\f[R] قابل تغییر هستند. .RS .RE .TP .B \f[CB]"\f[R]\f[I]prompt\-string\f[R]\f[CB]"\f[R] رشته‌ای را مشخص می‌کند که به عنوان اعلان برای خط اول ورودی استفاده می‌شود. .RS .RE .TP .B \f[CB]"\f[R]\f[I]continuation\-prompt\-string\f[R]\f[CB]"\f[R] رشته‌ای را مشخص می‌کند که به عنوان اعلان برای خطوط ورودی اضافی مورد نیاز برای تکمیل یک قطعه‌کد استفاده می‌شود. .RS .RE .RE .TP .B \f[CB]start\f[R] [\f[CB]\-retain\f[R]] [\f[I]file\f[R] [\f[I]file\f[R]...]|\f[I]option\f[R]] نام اسکریپت‌های راه‌اندازی مورد استفاده هنگام اجرای دستور بعدی \f[CB]/reset\f[R]، \f[CB]/reload\f[R] یا \f[CB]/env\f[R] را تنظیم می‌کند. اگر بیش از یک اسکریپت وارد شود، اسکریپت‌ها به ترتیبی که وارد شده‌اند اجرا می‌شوند. اگر هیچ اسکریپت یا گزینه‌ای وارد نشود، تنظیمات راه‌اندازی فعلی نمایش داده می‌شوند. .RS .PP اسکریپت‌ها می‌توانند فایل‌های محلی یا یکی از اسکریپت‌های از پیش تعریف‌شده زیر باشند: .TP .B \f[CB]DEFAULT\f[R] موردهای پیش‌فرض را بارگذاری می‌کند که معمولاً به عنوان import استفاده می‌شوند. .RS .RE .TP .B \f[CB]JAVASE\f[R] تمام بسته‌های Java SE را ایمپورت می‌کند. .RS .RE .TP .B \f[CB]PRINTING\f[R] متدهای \f[CB]print\f[R]، \f[CB]println\f[R] و \f[CB]printf\f[R] را به عنوان متدهای \f[CB]jshell\f[R] برای استفاده درون ابزار تعریف می‌کند. .RS .RE .PP گزینه‌های زیر معتبر هستند: .TP .B \f[CB]\-default\f[R] تنظیمات راه‌اندازی را روی تنظیمات پیش‌فرض قرار می‌دهد. .RS .RE .TP .B \f[CB]\-none\f[R] مشخص می‌کند که هیچ تنظیم راه‌اندازی استفاده نشود. .RS .RE .PP از گزینه \f[CB]\-retain\f[R] برای ذخیره تنظیم شروع در طول نشست‌ها استفاده کنید. .RE .TP .B \f[CB]truncation\f[R] \f[I]mode\f[R] \f[I]length\f[R] \f[I]selector\f[R] حداکثر طول یک مقدار نمایش‌داده‌شده را تنظیم می‌کند. اگر حالتی وارد نشود، مقادیر کوتاه‌سازی فعلی برای تمام حالت‌های بازخورد نمایش داده می‌شوند. اگر فقط یک حالت وارد شود، مقادیر کوتاه‌سازی فعلی برای آن حالت نمایش می‌یابند. .RS .PP برای تعریف مقادیر کوتاه‌سازی، آرگومان‌های زیر الزامی هستند: .TP .B \f[I]mode\f[R] حالت بازخوردی را مشخص می‌کند که مقدار کوتاه‌سازی بر آن اعمال می‌شود. تنها حالت‌های سفارشی ایجادشده با دستور \f[CB]/set\ mode\f[R] قابل تغییر هستند. .RS .RE .TP .B \f[I]length\f[R] عدد صحیح بدون علامتی را مشخص می‌کند که به عنوان حداکثر طول برای گزینش‌گر تعیین‌شده استفاده می‌شود. .RS .RE .TP .B \f[I]selector\f[R] زمینه‌ای را مشخص می‌کند که در آن مقدار کوتاه‌سازی اعمال می‌شود. گزینش‌گرها در راهنمای برخط شرح داده شده‌اند که از طریق JShell با دستور \f[CB]/help\ /set\ truncation\f[R] در دسترس است. .RS .RE .RE .RE .TP .B \f[CB]/types\f[R] [\f[I]option\f[R]] کلاس‌ها، اینترفیس‌ها و enumهای واردشده را نمایش می‌دهد. اگر گزینه‌ای وارد نشود، تمام کلاس‌ها، اینترفیس‌ها و enumهای فعال فعلی نمایش داده می‌شوند. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] اطلاعات کلاس‌ها، اینترفیس‌ها و enumهای مشخص‌شده با نام، شناسه یا بازه شناسه را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیست، موارد را با فاصله جدا نمایید. برای دیدن شناسه‌های قطعه‌کدها از دستور \f[CB]/list\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]\-all\f[R] اطلاعات تمام کلاس‌ها، اینترفیس‌ها و enumها را نمایش می‌دهد، از جمله مواردی که هنگام شروع JShell اضافه شده‌اند و مواردی که ناموفق بوده‌اند، بازنویسی شده‌اند یا حذف شده‌اند. .RS .RE .TP .B \f[CB]\-start\f[R] اطلاعات کلاس‌ها، اینترفیس‌ها و enumهای راه‌اندازی که هنگام شروع JShell اضافه شده‌اند را نمایش می‌دهد. .RS .RE .RE .TP .B \f[CB]/vars\f[R] [\f[I]option\f[R]] نام، نوع و مقدار متغیرهای واردشده را نمایش می‌دهد. اگر گزینه‌ای وارد نشود، تمام متغیرهای فعال فعلی نمایش داده می‌شوند. .RS .PP گزینه‌های زیر معتبر هستند: .TP .B {\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] اطلاعات متغیرهای مشخص‌شده با نام، شناسه یا بازه شناسه را نمایش می‌دهد. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیست، موارد را با فاصله جدا نمایید. برای دیدن شناسه‌های قطعه‌کدها از دستور \f[CB]/list\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]\-all\f[R] اطلاعات تمام متغیرها را نمایش می‌دهد، از جمله متغیرهایی که هنگام شروع JShell اضافه شده‌اند و متغیرهایی که ناموفق بوده‌اند، بازنویسی شده‌اند یا حذف شده‌اند. .RS .RE .TP .B \f[CB]\-start\f[R] اطلاعات متغیرهای راه‌اندازی که هنگام شروع JShell اضافه شده‌اند را نمایش می‌دهد. .RS .RE .RE .TP .B \f[CB]/?\f[R] مشابه دستور \f[CB]/help\f[R]. .RS .RE .TP .B \f[CB]/!\f[R] آخرین قطعه‌کد را مجدداً اجرا می‌کند. .RS .RE .TP .B \f[CB]/\f[R]{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]} [{\f[I]name\f[R]|\f[I]id\f[R]|\f[I]startID\f[R]\f[CB]\-\f[R]\f[I]endID\f[R]}...] قطعه‌کدهای مشخص‌شده با شناسه، بازه‌ای از شناسه‌ها یا نام را مجدداً اجرا می‌کند. برای بازه‌ای از شناسه‌ها، شناسه شروع و شناسه پایان را با خط تیره جدا کنید. برای ارائه لیست، موارد را با فاصله جدا نمایید. اولین مورد در لیست باید شناسه یا بازه شناسه باشد. برای دیدن شناسه‌های قطعه‌کدها از دستور \f[CB]/list\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]/\-\f[R]\f[I]n\f[R] قطعه‌کد \-\f[I]n\f[R]ام قبلی را مجدداً اجرا می‌کند. برای مثال، اگر ۱۵ قطعه‌کد وارد شده باشد، دستور \f[CB]/\-4\f[R] قطعه‌کد یازدهم را اجرا می‌کند. دستورات در شمارش لحاظ نمی‌شوند. .RS .RE .SH "میانبرهای ورودی (INPUT SHORTCUTS)" .PP میانبرهای زیر برای وارد کردن دستورات و قطعه‌کدها در JShell در دسترس هستند. .SS "تکمیل خودکار با کلید Tab" .TP .B \f[B]\f[R] هنگام وارد کردن قطعه‌کدها، دستورات، زیردستورات، آرگومان‌های دستور یا گزینه‌های دستور، از کلید Tab برای تکمیل خودکار مورد استفاده کنید. اگر مورد بر اساس آنچه وارد شده قابل تشخیص نباشد، گزینه‌های ممکن ارائه می‌شوند. .RS .PP هنگام وارد کردن فراخوانی یک متد، از کلید Tab پس از پرانتز باز فراخوانی متد استفاده کنید تا پارامترهای متد را مشاهده نمایید. اگر متد دارای بیش از یک امضا (signature) باشد، تمام امضاها نمایش داده می‌شوند. فشردن کلید Tab برای بار دوم، توضیحات متد و پارامترها را برای اولین امضا نمایش می‌دهد. برای دیدن توضیحات هر امضای اضافی، به فشردن کلید Tab ادامه دهید. .RE .TP .B \f[B]Shift+ V\f[R] پس از وارد کردن یک عبارت کامل، از این ترکیب کلید برای تبدیل عبارت به اعلان متغیر از نوعی که توسط نوع عبارت تعیین می‌شود، استفاده کنید. .RS .RE .TP .B \f[B]Shift+ M\f[R] پس از وارد کردن یک عبارت یا دستور کامل، از این ترکیب کلید برای تبدیل عبارت یا دستور به اعلان متد استفاده کنید. اگر یک عبارت وارد شده باشد، نوع بازگشتی بر اساس نوع عبارت خواهد بود. .RS .RE .TP .B \f[B]Shift+ I\f[R] هنگامی که یک شناسه وارد شده که قابل حل نیست، از این ترکیب کلید استفاده کنید تا ایمپورت‌های ممکن که شناسه را بر اساس محتوای مسیر کلاس مشخص‌شده حل می‌کنند، نشان داده شوند. .RS .RE .SS "مخفف‌های دستورات" .PP مخفف یک دستور در صورتی پذیرفته می‌شود که به طور منحصر‌به‌فرد یک دستور را مشخص کند. برای مثال، \f[CB]/l\f[R] به عنوان دستور \f[CB]/list\f[R] شناخته می‌شود. با این حال، \f[CB]/s\f[R] یک مخفف معتبر نیست زیرا مشخص نیست که منظور دستور \f[CB]/set\f[R] است یا \f[CB]/save\f[R]. از \f[CB]/se\f[R] برای دستور \f[CB]/set\f[R] یا از \f[CB]/sa\f[R] برای دستور \f[CB]/save\f[R] استفاده کنید. .PP مخفف‌ها همچنین برای زیردستورات، آرگومان‌های دستور و گزینه‌های دستور پذیرفته می‌شوند. برای مثال، از \f[CB]/m\ \-a\f[R] برای نمایش همه متدها استفاده کنید. .SS "پیمایش در تاریخچه" .PP تاریخچه موارد واردشده در طول نشست‌ها نگهداری می‌شود. از کلیدهای جهت‌نمای بالا و پایین برای پیمایش در میان دستورات و قطعه‌کدهای نشست جاری و گذشته استفاده کنید. از کلید Ctrl همراه با جهت‌نماهای بالا و پایین برای پرش از تمام خطوط به جز خط اول قطعه‌کدهای چندخطی استفاده کنید. .SS "جستجو در تاریخچه" .PP از ترکیب کلیدهای Ctrl+R برای جستجوی رشته واردشده در تاریخچه استفاده کنید. اعلان برای نمایش رشته و مورد منطبق تغییر می‌کند. ترکیب Ctrl+R از مکان فعلی در تاریخچه به سمت عقب و میان ورودی‌های قبلی جستجو می‌کند. ترکیب Ctrl+S از مکان فعلی در تاریخچه به سمت جلو و میان ورودی‌های بعدی جستجو می‌کند. .SH "ویرایش ورودی (INPUT EDITING)" .PP قابلیت‌های ویرایش JShell شبیه به دیگر شل‌های رایج است. کلیدها و ترکیب‌های کلیدی صفحه‌کلید میانبرهای ویرایش خط را فراهم می‌کنند. کلیدهای Ctrl و Meta در ترکیب‌های کلیدی استفاده می‌شوند. اگر صفحه‌کلید شما کلید Meta ندارد، کلید Alt معمولاً برای ارائه قابلیت کلید Meta نگاشت می‌شود. .PP .TS tab(@); l l. T{ کلید یا ترکیب کلیدی T}@T{ عملیات T} _ T{ Return T}@T{ خط جاری را وارد می‌کند. T} T{ کلید جهت‌نمای چپ T}@T{ مکان‌نما را یک کاراکتر به چپ می‌برد. T} T{ کلید جهت‌نمای راست 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{ متن از مکان‌نما تا فاصله سفید قبلی را حذف می‌کند. 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)" .PP ابزار JShell همراه با JDK ارائه می‌شود. برای شروع یک نشست، \f[CB]jshell\f[R] را در خط فرمان وارد کنید. یک پیام خوش‌آمدگویی چاپ شده و اعلانی برای ورود دستورات و قطعه‌کدها ارائه می‌شود. .IP .nf \f[CB] %\ jshell |\ \ Welcome\ to\ JShell\ \-\-\ Version\ 9 |\ \ For\ an\ introduction\ type:\ /help\ intro jshell> \f[R] .fi .PP برای مشاهده اینکه چه قطعه‌کدهایی هنگام شروع JShell به طور خودکار بارگذاری شده‌اند، از دستور \f[CB]/list\ \-start\f[R] استفاده کنید. قطعه‌کدهای راه‌اندازی پیش‌فرض، دستورات import برای بسته‌های رایج هستند. شناسه هر قطعه‌کد با حرف \f[I]s\f[R] شروع می‌شود که نشان‌دهنده یک قطعه‌کد راه‌اندازی (startup) است. .IP .nf \f[CB] 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> \f[R] .fi .PP برای پایان دادن به نشست، از دستور \f[CB]/exit\f[R] استفاده کنید. .IP .nf \f[CB] jshell>\ /exit |\ \ Goodbye % \f[R] .fi .SH "مثال‌هایی از وارد کردن قطعه‌کدها (EXAMPLE OF ENTERING SNIPPETS)" .PP قطعه‌کدها شامل دستورات جاوا، تعاریف متغیرها، تعاریف متدها، تعاریف کلاس‌ها، دستورات import و عبارت‌ها هستند. نقطه ویرگول‌های پایانی در صورت جا افتادن، به طور خودکار به انتهای یک قطعه‌کد کامل‌شده اضافه می‌شوند. .PP مثال زیر تعریف دو متغیر و یک متد، و سپس اجرای متد را نشان می‌دهد. توجه داشته باشید که یک متغیر موقت (scratch variable) به طور خودکار برای نگهداری نتیجه ایجاد می‌شود زیرا هیچ متغیری مشخص نشده بود. .IP .nf \f[CB] 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 \f[R] .fi .SH "مثال‌هایی از تغییر قطعه‌کدها (EXAMPLE OF CHANGING SNIPPETS)" .PP تعریف یک متغیر، متد یا کلاس را با وارد کردن مجدد آن تغییر دهید. .PP مثال‌های زیر تعریف یک متد و اجرای آن را نشان می‌دهند: .IP .nf \f[CB] jshell>\ String\ grade(int\ testScore)\ { \ \ \ ...>\ \ \ \ \ if\ (testScore\ >=\ 90)\ { \ \ \ ...>\ \ \ \ \ \ \ \ \ return\ "Pass"; \ \ \ ...>\ \ \ \ \ } \ \ \ ...>\ \ \ \ \ return\ "Fail"; \ \ \ ...>\ } |\ \ created\ method\ grade(int) jshell>\ grade(88) $3\ ==>\ "Fail" \f[R] .fi .PP برای تغییر متد \f[CB]grade\f[R] جهت قبولی تعداد بیشتری از دانشجویان، تعریف متد را مجدداً وارد کرده و نمره قبولی را به \f[CB]80\f[R] تغییر دهید. از کلید جهت‌نمای بالا برای بازیابی ورودی‌های قبلی استفاده کنید تا از ورود مجدد آن‌ها بی‌نیاز شوید و تغییر را در عبارت \f[CB]if\f[R] اعمال نمایید. مثال زیر تعریف جدید را نشان داده و متد را مجدداً اجرا می‌کند تا نتیجه جدید را نمایش دهد: .IP .nf \f[CB] jshell>\ String\ grade(int\ testScore)\ { \ \ \ ...>\ \ \ \ \ if\ (testScore\ >=\ 80)\ { \ \ \ ...>\ \ \ \ \ \ \ \ \ return\ "Pass"; \ \ \ ...>\ \ \ \ \ } \ \ \ ...>\ \ \ \ \ return\ "Fail"; \ \ \ ...>\ } |\ \ modified\ method\ grade(int) jshell>\ grade(88) $5\ ==>\ "Pass" \f[R] .fi .PP برای قطعه‌کدهایی که بیش از چند خط طول دارند، یا برای اعمال تغییرات بیشتر، از دستور \f[CB]/edit\f[R] برای باز کردن قطعه‌کد در یک ویرایشگر استفاده کنید. پس از اتمام تغییرات، پنجره ویرایش را ببندید تا کنترل به نشست JShell بازگردد. مثال زیر دستور و بازخورد ارائه‌شده هنگام بسته شدن پنجره ویرایش را نشان می‌دهد. از دستور \f[CB]/list\f[R] برای نشان دادن اینکه نمره قبولی به \f[CB]85\f[R] تغییر یافته، استفاده شده است. .IP .nf \f[CB] jshell>\ /edit\ grade |\ \ modified\ method\ grade(int) jshell>\ /list\ grade \ \ \ 6\ :\ String\ grade(int\ testScore)\ { \ \ \ \ \ \ \ \ \ \ \ if\ (testScore\ >=\ 85)\ { \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ return\ "Pass"; \ \ \ \ \ \ \ \ \ \ \ } \ \ \ \ \ \ \ \ \ \ \ return\ "Fail"; \ \ \ \ \ \ \ } \f[R] .fi .SH "مثال ساخت حالت بازخورد سفارشی (EXAMPLE OF CREATING A CUSTOM FEEDBACK MODE)" .PP حالت بازخورد تعیین‌کننده اعلانی است که نمایش داده می‌شود، پیام‌های بازخوردی که با ورود قطعه‌کدها ارائه می‌شوند و حداکثر طول یک مقدار نمایش‌داده‌شده است. حالت‌های بازخورد از پیش تعریف‌شده ارائه شده‌اند. دستوراتی برای ایجاد حالت‌های بازخورد سفارشی نیز فراهم شده است. .PP از دستور \f[CB]/set\ mode\f[R] برای ایجاد یک حالت بازخورد جدید استفاده کنید. در مثال زیر، حالت جدید \f[CB]mymode\f[R] بر اساس حالت بازخورد از پیش تعریف‌شده \f[CB]normal\f[R] ایجاد شده و بازخورد اعتبارسنجی دستورات نمایش داده می‌شود: .IP .nf \f[CB] jshell>\ /set\ mode\ mymode\ normal\ \-command |\ \ Created\ new\ feedback\ mode:\ mymode \f[R] .fi .PP از آنجا که حالت جدید بر اساس حالت \f[CB]normal\f[R] است، اعلان‌ها یکسان هستند. مثال زیر نحوه مشاهده اعلان‌های مورد استفاده و سپس تغییر اعلان‌ها به رشته‌های سفارشی را نشان می‌دهد. رشته اول نشان‌دهنده اعلان استاندارد JShell است. رشته دوم نشان‌دهنده اعلان برای خطوط اضافی در قطعه‌کدهای چندخطی است. .IP .nf \f[CB] jshell>\ /set\ prompt\ mymode |\ \ /set\ prompt\ mymode\ "\\njshell>\ "\ "\ \ \ ...>\ " jshell>\ /set\ prompt\ mymode\ "\\nprompt$\ "\ "\ \ \ continue$\ " \f[R] .fi .PP حداکثر طول یک مقدار نمایش‌داده‌شده با تنظیمات کوتاه‌سازی (truncation) کنترل می‌شود. انواع مختلف مقادیر می‌توانند طول‌های متفاوتی داشته باشند. مثال زیر مقدار کوتاه‌سازی کلی ۷۲ و مقدار کوتاه‌سازی ۵۰۰ را برای عبارت‌های مقدار متغیر تنظیم می‌کند: .IP .nf \f[CB] jshell>\ /set\ truncation\ mymode\ 72 jshell>\ /set\ truncation\ mymode\ 500\ varvalue \f[R] .fi .PP بازخورد نمایش‌داده‌شده پس از ورود قطعه‌کدها توسط تنظیمات قالب کنترل می‌شود و بر اساس نوع قطعه‌کد واردشده و عملیات انجام‌شده برای آن قطعه‌کد است. در حالت از پیش تعریف‌شده \f[CB]normal\f[R]، هنگام ایجاد یک متد رشته \f[CB]created\f[R] نمایش داده می‌شود. مثال زیر نحوه تغییر آن رشته به \f[CB]defined\f[R] را نشان می‌دهد: .IP .nf \f[CB] jshell>\ /set\ format\ mymode\ action\ "defined"\ added\-primary \f[R] .fi .PP از دستور \f[CB]/set\ feedback\f[R] برای شروع استفاده از حالت بازخوردی که ساخته شد استفاده کنید. مثال زیر حالت سفارشی را در حال استفاده نشان می‌دهد: .IP .nf \f[CB] jshell>\ /set\ feedback\ mymode |\ \ Feedback\ mode:\ mymode prompt$\ int\ square\ (int\ num1){ \ \ \ continue$\ return\ num1*num1; \ \ \ continue$\ } |\ \ defined\ method\ square(int) prompt$ \f[R] .fi