Java Platform Standard Edition

Java Shellユーザー・ガイド

リリース9

E90931-01(原本部品番号:E87478-01)

2017年9月

Java言語を調査するためのJava Shell (JShell)、Read-Eval-Print Loop (REPL)ツールの使用方法

Java Platform, Standard Edition Java Shellユーザー・ガイド, リリース9

E90931-01

Copyright © 2017, Oracle and/or its affiliates.  All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、Oracleまでご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 JShellの概要

- JShellを使用する理由

- JShellの起動および停止

2 スニペット

- スニペットの試用

- 定義の変更

- 前方参照

- 例外

- スニペットのタブ補完

- スニペットの変換

3 コマンド

- コマンドの概要

- コマンドのタブ補完

- コマンドの省略形

4 編集

- シェル編集

- 入力行のナビゲーション

- 履歴のナビゲーション

- 入力行の変更

- 検索およびその他

- 外部エディタ

5 外部コード

- クラス・パスの設定

- モジュール・オプションの設定

6 フィードバック・モード

- フィードバック・モードの設定

- フィードバック・モードの定義

7 スクリプト

- 起動スクリプト

- スクリプトの作成およびロード

はじめに

このガイドは、Java言語を調査したり、およびコードのプロトタイプを作成するためのJava Shellツール(JShell)の使用方法について説明します。

対象読者

このドキュメントは、Read-Eval-Print Loop (REPL)を使用してJava言語を学習したり、新しいJava APIや機能を調査したり、複合コードのプロトタイプを作成することが必要な開発者を対象としています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

他のJDK 9のガイドについては、Oracle JDK 9ドキュメントを参照してください。

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

<keys>

三角カッコ(<>)で囲まれたキーボードのキーまたはキーの組合せの名前は、キーまたはキーの組合せをユーザー入力として押すことを示しています。

1 JShellの概要

Java Shellツール(JShell)は、Javaプログラミング言語を学習したり、およびJavaコードのプロトタイプを作成するための対話型ツールです。JShellはRead-Evaluate-Print Loop (REPL)であり、入力時に宣言、文および式を評価し、ただちに結果を表示します。ツールは、コマンドラインから実行されます。

トピック

- JShellを使用する理由

- JShellの起動および停止

このツールの参照情報は、Java Platform, Standard Editionツール・リファレンスのjshellに関する項を参照してください。

JShellを使用する理由

JShellを使用すると、一度に1つずつプログラム要素を入力したり、ただちに結果を確認したり、必要に応じて調整できます。

Javaプログラムの開発には、通常、次のプロセスが含まれます。

- 完全なプログラムを作成します。

- これをコンパイルして、エラーを修正します。

- プログラムを実行します。

- 問題がある場所を調べます。

- これを編集します。

- このプロセスを繰り返します。

JShellを使用すると、プログラム開発時にコードを試したり、オプションを容易に調べることができます。JShellセッションで、個々の文をテストしたり、様々なバリエーションのメソッドを試したり、よく知らないAPIを試すことができます。JShellはIDEに取ってかわるものではありません。プログラムの開発時に、コードをJShellに貼り付けてこれを試してから、動作するコードをJShellからプログラム・エディタまたはIDEに貼り付けます。

JShellの起動および停止

JShellはJDK 9に含まれています。JShellを起動するには、コマンドラインでjshellコマンドを入力します。

JDK 9をシステムにインストールする必要があります。ご使用のパスにjava-home/jdk-9/binが含まれていない場合、そのディレクトリ内からツールを起動します。

次の例に、コマンドおよびJShellからの応答を示します。入力するテキストは、太字で示されます。

% jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell>

このチュートリアルの例では、詳細モードを使用します。このチュートリアルで作業する際は、例と同じものが表示されるように、詳細モードを使用することをお薦めします。ツールをよく理解している場合、通常またはより簡潔なモードでの実行を選択することもできます。

詳細モードでJShellを起動するには、-vオプションを使用します。

% jshell -v

JShellを終了するには、/exitを入力します。

jshell> /exit
|  Goodbye

2 スニペット

JShellでは、Javaの文、変数、メソッド、クラス定義、インポートおよび式が使用可能です。Javaコードのこれらの要素は、スニペットとして参照されます。

トピック

- スニペットの試用

- 定義の変更

- 前方参照

- 例外

- スニペットのタブ補完

- スニペットの変換

スニペットの試用

JavaコードのスニペットはJShellに入力され、ただちに評価されます。結果に関するフィードバック、実行されたアクションおよび発生したエラーが表示されます。この項の例を使用して、JShellで試します。

詳細オプションを指定してJShellを起動し、使用可能な最大量のフィードバックを取得します。

% jshell -v
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

プロンプトで次のサンプルの文を入力して、表示される出力を確認します。

jshell> int x = 45
x ==> 45
|  created variable x : int

最初に結果が表示されます。これは、変数xの値は45という意味です。詳細モードで実行しているため、発生した内容の説明も表示されます。情報メッセージは、縦棒から始まります。作成された変数の名前と型の両方が示されていることに注意してください。

注意:
末尾のセミコロンは入力しなくても、スニペットの補完時に自動的に追加されます。

式が入力され、その中に名前付き変数がない場合、後で値を参照できるようにスクラッチ変数が作成されます。次の例は、式およびメソッドの結果のスクラッチの値を示しています。この例では、続行プロンプト(...>)も示し、これはスニペットで複数行の入力を補完する必要がある場合に使用します。

jshell> 2 + 2
$3 ==> 4
|  created scratch variable $3 : int

jshell> String twice(String s) {
...>    return s + s;
...> }
|  created method twice(String)

jshell> twice("Ocean")
$5 ==> "OceanOcean"
|  created scratch variable $5 : String

定義の変更

コードを試すとき、変数の定義、メソッドまたはクラスが想定どおりに動作しない場合があります。定義は新しいものを入力すると、前の定義が上書きされ、容易に変更されます。

変数、メソッドまたはクラスの定義を変更するには、新しい定義を入力します。たとえば、「スニペットの試用」で定義したtwiceメソッドは、次の例では、新しい定義を取得します。

jshell> String twice(String s) {
...>    return "Twice:" + s;
...> }
|  modified method twice(String)

jshell> twice("thing")
$7 ==> "Twice:thing"
|  created scratch variable $7 : String

フィードバックでは、前述のcreated methodが表示されずに、modified methodと表示されることに注意してください。このメッセージは、定義が変更されたが、メッセージには同じシグネチャが含まれているので、既存のすべての使用方法が有効のままであることを意味しています。

互換性のない方法で、定義を変更することもできます。次の例は、x文字列がintからStringに変更されていることを示しています。

jshell> int x = 45
x ==> 45
|  created variable x : int

jshell> String x
x ==> null
|  replaced variable x : String
|    update overwrote variable x : int

変数xの型が変更され、フィードバックではreplacedと示されています。

フィードバックのレベルの変更

JShellは詳細フィードバック・モードで起動されると、多数のコメントが表示されます。/set feedbackコマンドを指定すると、出力の量と形式を設定できます(例: /set feedback concise)。主に、他のウィンドウから貼り付けてJShellを使用する場合、プロンプトがなく、エラーのフィードバックのみを表示するフィードバック・モードの方がよい場合があります。この場合、/set feedback silentコマンドを入力します。

前方参照

JShellでは、未定義のメソッド、変数またはクラスを参照するメソッド定義が使用可能です。この機能を実行するのは、試験的なプログラミングをサポートするため、および一部の形式のプログラミングで必要となるためです。

例として、球体のボリューム用のメソッドを定義する場合、次の式をメソッドvolumeとして入力できます。

jshell> double volume(double radius) {
...>    return 4.0 / 3.0 * PI * cube(radius);
...> }
|  created method volume(double), however, it cannot be invoked until variable PI, and method cube(double) are declared

JShellでは定義が許可されますが、未定義の場合、警告が表示されます。定義を参照することはできますが、実行を試す際に、必要な要素がすべて定義されていなければ、失敗します。

jshell> double PI = 3.1415926535
PI ==> 3.1415926535
|  created variable PI : double

jshell> volume(2)
|  attempted to call method volume(double) which cannot be invoked until method cube(double) is declared

jshell> double cube(double x) { return x * x * x; }
|  created method cube(double)
|    update modified method volume(double)

jshell> volume(2)
$5 ==> 33.510321637333334
|  created scratch variable $5 : double

すべて定義されると、volumeメソッドは動作します。

このメソッドを使用して、互換性のない代替方法を示します。たとえば、PIの精度を変更するには、次の例のように新しい値を入力します。

jshell> BigDecimal PI = new BigDecimal("3.141592653589793238462643383")
PI ==> 3.141592653589793238462643383
|  replaced variable PI : BigDecimal
|    update modified method volume(double) which cannot be invoked until this error is corrected:
|      bad operand types for binary operator '*'
|        first type:  double
|        second type: java.math.BigDecimal
|          return 4.0 / 3.0 * PI * cube(radius);
|                 ^------------^
|    update overwrote variable PI : double

PIの新しい定義は、volume()の定義と型の互換性がありません。詳細モードで実行しているため、変更で影響を受ける他の定義の更新情報が表示されます。この場合、この情報は非互換性について説明するものです。詳細モードは、事前定義済のフィードバック・モードであり、更新情報が表示されます。他のフィードバック・モードでは、コードを実行しないかぎり、警告は表示されません。この目的は、更新のオーバーロードを回避することです。すべての事前定義モードで、volume()メソッドを実行すると、問題が表示されます。

jshell> volume(2)
|  attempted to call method volume(double) which cannot be invoked until this error is corrected:
|      bad operand types for binary operator '*'
|        first type:  double
|        second type: java.math.BigDecimal
|          return 4.0 / 3.0 * PI * cube(radius);
|                 ^------------^

例外

例外のバックトレースでは、フィードバックにより、例外が発生したスニペットとスニペット内の場所が示されます。

JShellに入力したコード内の場所が#ID:line-numberとして表示されます。ここで、スニペットIDは/listコマンドで表示される番号で、line-numberはスニペット内の行番号です。次の例では、スニペット1 (divide()メソッド)の2行目で例外が発生しています。

jshell> int divide(int x, int y) {
...> return x / y;
...> }
|  created method divide(int,int)

jshell> divide(5, 0)
|  java.lang.ArithmeticException thrown: / by zero
|        at divide (#1:2)
|        at (#2:1)

jshell> /list

1 : int divide(int x, int y) {
return x / y;
}
2 : divide(5, 0)

スニペットのタブ補完

スニペットを入力する場合、[Tab]キーを使用すると自動的に項目が補完されます。入力内容から項目を判定できない場合、使用可能なオプションが提示されます。

たとえば、「前方参照」のvolumeメソッドを入力する場合、メソッド名の先頭の数文字を入力して、[Tab]キーを押すと、入力を補完できます。

jshell> vol<Tab>

次のように入力されます。

jshell> volume(

項目の補完候補が複数ある場合、使用可能な候補が表示されます。

jshell> System.c<Tab>
class                 clearProperty(        console()             currentTimeMillis()

jshell> System.c

共通の文字が入力内容に追加され、さらに入力できるようにカーソルが入力の後に表示されます。

メソッド・コールの開きカッコの後に、[Tab]を押すと、パラメータ・タイプとともに補完候補が表示されます。

jshell> "hello".startsWith(<Tab>
Signatures:
boolean String.startsWith(String prefix, int toffset)
boolean String.startsWith(String prefix)

<press tab again to see documentation>

jshell> "hello".startsWith(

[Tab]を再度押すと、最初のメソッドのプレーン・テキスト・バージョンのドキュメントが表示されます。

jshell> "hello".startsWith(<Tab>
boolean String.startsWith(String prefix, int toffset)
Tests if the substring of this string beginning at the specified index starts with the
specified prefix.

Parameters:
prefix - the prefix.
toffset - where to begin looking in this string.

Returns:
true if the character sequence represented by the argument is a prefix of the substring of this
object starting at index toffset ; false otherwise. The result is false if toffset is
negative or greater than the length of this String object; otherwise the result is
the same as the result of the expression
this.substring(toffset).startsWith(prefix)

<press tab to see next documentation>

jshell> "hello".startsWith(

スニペットの変換

JShellは、最初にクラスが参照されるときに必要なクラスをインポートしたり、キーボード・ショートカットを使用して式を変数宣言に変換する際に便利です。

インポートされていない識別子を入力する場合、識別子の直後に[Shift]+[Tab]を押すと、オプションが表示され、インポートをセッションに追加できるようになります。

jshell> new JFrame<Shift+Tab i>
0: Do nothing
1: import: javax.swing.JFrame
Choice: 1
Imported: javax.swing.JFrame

jshell> new JFrame

必要なオプションの番号を入力します。複数のインポート・オプションを指定できます。

式を入力した後に[Shift]+[Tab]+[v]を押すと、式を変数宣言に変換できます。式が変数宣言の初期値になり、式の型が変数の型になります。[Shift]+[Tab]+[v]を押した後に、例で縦棒(|)によって示されるカーソルが、変数名を入力する必要のある行に表示されます。

jshell> new JFrame("Demo") <Shift+Tab v>
jshell> JFrame | = new JFrame("Demo")

注意:
式は有効である必要があります。有効でなければ、変換リクエストは無視されます。例では、変数変換の前にJFrameのインポートが必要です。

前述の例を完了するには、変数名frameをカーソル位置で入力して、[Enter]を押します。

jshell> JFrame frame = new JFrame("Demo")
frame ==> javax.swing.JFrame[frame0,0,0,0x0,invalid,hidden, ... tPaneCheckingEnabled=true]
|  created variable frame : JFrame

jshell>

式の結果タイプがインポートされない場合があります。この場合、次の例のように、[Shift]+[Tab]+[v]を押して、変数をインポートおよび作成します。

jshell> frame.getGraphics() <Shift+Tab v>
0: Do nothing
1: Create variable
2: import: java.awt.Graphics. Create variable
Choice: 2
Imported: java.awt.Graphics

jshell> Graphics | = frame.getGraphics()

前述の例を完了するには、変数名gcをカーソル位置で入力して、[Enter]を押します。

jshell> Graphics gc = frame.getGraphics()
|  created variable gc : JFrame

jshell>

3 コマンド

JShellコマンドはJShellセッションで入力され、環境の制御および情報の表示に使用されます。

トピック

- コマンドの概要

- コマンドのタブ補完

- コマンドの省略形

コマンドの概要

JShellコマンドはセッション内で環境を制御したり、情報を表示します。

コマンドは、先頭のスラッシュ(/)でスニペットと区別されます。現在の変数、メソッドおよびタイプの詳細は、/vars、/methodsおよび/typesコマンドを使用します。入力済スニペットのリストについては、/listコマンドを使用します。次の例は、「スニペットの試用」の例に基づいたコマンドを示しています。

jshell> /vars
|    int x = 45
|    int $3 = 4
|    String $5 = "OceanOcean"

jshell> /methods
|    twice (String)String

jshell> /list

1 : System.out.println("Hi");
2 : int x = 45;
3 : 2 + 2
4 : String twice(String s) {
return s + s;
}
5 : twice("Ocean")

変数の型および値、メソッドのタイプ・シグネチャが表示されます。

JShellには、デフォルトの起動スクリプトが用意されており、JShellが起動する前にサイレントかつ自動的に実行されるので、ユーザーは迅速に作業に取りかかることができます。起動スクリプトからのエントリは、/list -startまたは/list -allコマンドでリクエストしないかぎり、リストされません。

jshell> /list -all

s1 : import java.util.*;
s2 : import java.io.*;
s3 : import java.math.*;
s4 : import java.net.*;
s5 : import java.util.concurrent.*;
s6 : import java.util.prefs.*;
s7 : import java.util.regex.*;
1 : System.out.println("Hi");
2 : int x = 45;
3 : 2 + 2
4 : String twice(String s) {
return s + s;
}
5 : twice("Ocean")

デフォルトの起動スクリプトは、いくつかの共通インポートから構成されます。/set startコマンドを使用して、起動エントリをパーソナライズできます。このコマンドの詳細は、/help /set startを入力してください。/save -startコマンドは、現在の起動スクリプトを独自の起動スクリプトの開始点として保存します。

他の重要なコマンドには、JShellを終了するための/exit、スニペットを保存するための/save、ファイルからスニペットを入力するための/openがあります。

JShellコマンドをリストするには、/helpを入力します。

コマンドのタブ補完

スニペットの補完と同様に、コマンドおよびコマンド・オプションを入力する場合、[Tab]キーを使用すると自動的にコマンドまたはオプションが補完されます。入力内容から補完内容を判定できない場合、使用可能な選択肢が提示されます。

次の例は、コマンドの先頭にスラッシュ(/)を入力した後に[Tab]を押したときのフィードバックを示しています。

jshell> /<Tab>
/!          /?          /drop       /edit       /env        /exit       /help
/history    /imports    /list       /methods    /open       /reload     /reset
/save       /set        /types      /vars

<press tab again to see synopsis>

jshell> /

一意の補完がその場所で行われます。たとえば、/lを入力して[Tab]を押すと、行は/listに置き換わります。

jshell> /l<Tab>

jshell> /list

タブ補完はコマンド・オプションにも使用できます。次の例は、[Tab]キーを使用して/listコマンドのオプションを表示する例を示しています。

jshell> /list -<Tab>
-all       -history   -start

<press tab again to see synopsis>

jshell> /list -

[Tab]を再度押すとコマンドの概要を表示するメッセージを確認してください。これはコマンドの簡潔な説明です。[Tab]を3回押すと、ヘルプ・ドキュメントが表示されます。次の例は、[Tab]を2回押したときと3回押したときの結果を示しています。

jshell> /list -<Tab>
list the source you have typed

<press tab again to see full documentation>

jshell> /list -<Tab>
Show the source of snippets, prefaced with the snippet id.

/list
List the currently active snippets of code that you typed or read with /open

/list -start
List the automatically evaluated start-up snippets

/list -all
List all snippets including failed, overwritten, dropped, and start-up

/list <name>
List snippets with the specified name (preference for active snippets)

/list <id>
List the snippet with the specified snippet id

jshell> /list -

一意の引数の補完がその場所で行われます。たとえば、/list -a<Tab>を入力すると、-allオプションが自動的に表示されます。

jshell> /list -a<Tab>

jshell> /list -all

スニペット名も[Tab]で補完できます。たとえば、JShellセッションでvolumeメソッドをすでに定義していた場合、メソッド名の先頭の文字を入力した後に[Tab]を押すと、メソッド名全体が表示されます。

jshell> /ed v<Tab>

jshell> /ed volume

コマンドのファイル引数の位置に[Tab]を使用すると、使用可能なファイルが表示されます。

jshell> /open <Tab>
myfile1      myfile2    definitions.jsh

<press tab again to see synopsis>

jshell> /open

一意のファイル名の補完がその場所で行われます。

jshell> /open d<Tab>

jshell> /open definitions.jsh

コマンドの省略形

省略形を使用すると、入力する量が少なくなります。コマンド、/setサブコマンド、コマンドの引数およびコマンド・オプションは、すべて省略できます。ただし、省略形が一意の場合にかぎります。

/lで始まるコ唯一のマンドは/listで、-aで始まる/listの唯一のオプションは-allです。したがって、次の省略形を使用すると、/list -allコマンドを入力できます。

jshell> /l -a

また、/seで始まる唯一のコマンドは/setで、feで始まる唯一の/setサブコマンドはfeedbackで、vで始まる唯一のフィードバック・モードはverboseです。これは、vで始まるカスタムのフィードバックが存在しないことを前提としています。したがって、次の省略形を使用すると、フィードバック・モードを詳細モードに設定できます。

jshell> /se fe v

/saveと/setの両方が同じ文字で始まるので、/sは十分な省略形ではないことに注意してください。不明な場合は、タブ補完を使用するとオプションを表示できます。

4 編集

JShellでは、jshellプロンプトでの入力の編集および選択した外部エディタでの編集をサポートしています。

シェル編集を使用すると、スニペットやコマンドを入力するときにこれらを編集したり、以前に入力したスニペットやコマンドを取得したり、編集したりできます。外部エディタではスニペットの編集および作成の代替方法を提供しており、複数行のスニペットを使用する場合に便利です。

トピック

- シェル編集

- 外部エディタ

シェル編集

コマンド・プロンプトで入力内容を編集すると、入力内容の修正、および以前に入力したコマンドやスニペットの取得と変更が容易になります。

JShellでのシェル編集は、BSD editlineおよびEmacsモードのGNU readlineと同様の機能があります。JLine2ユーザー情報およびGNU Readlineのドキュメントを参照してください。

トピック

- 入力行のナビゲーション

- 履歴のナビゲーション

- 入力行の変更

- 検索およびその他

入力行のナビゲーション

シェル編集は、現在の行の編集またはJShellの前のセッションの履歴へのアクセス用にサポートされています。

入力行をナビゲートする際に、[Ctrl]キーおよびメタ・キーを組み合せて使用します。キーボードにメタ・キーがない場合、[Alt]キーをマップしてメタ・キーの機能を提供することがあります。

行内の基本的なナビゲーションとして、右矢印キーまたは左矢印キーを使用し、後方へのナビゲーションには[Ctrl]+[B]を使用し、前方へのナビゲーションには[Ctrl]+[F]を使用します。履歴内の行間のナビゲーションに、上矢印キーおよび下矢印キーを使用します。上矢印キーを一度押すと、現在の行が前のコマンドまたはスニペットの行に置き換わります。上矢印キーを再度押すと、前の行にナビゲートされます。履歴には、コマンドとスニペットの行の両方が含まれています。複数の行が含まれているスニペットの場合、上矢印キーと下矢印キーでスニペットの各行間をナビゲートします。

次の表に、入力行のナビゲート時に使用するキーと実行されるアクションを示します。

キー

アクション

[Return]

現在の行を入力します

左矢印

1文字前に移動します

右矢印

1文字後ろに移動します

上矢印

1行上または前の履歴に移動します

下矢印

1行下または次の履歴に移動します

[Ctrl]+[A]

行の先頭に移動します

[Ctrl]+[E]

行の末尾に移動します

メタ・キー+[B]

1単語前に移動します

メタ・キー+[F]

1単語後ろに移動します

履歴のナビゲーション

スニペットおよびコマンドの履歴がJShellセッションで保持されています。この履歴を使用すると、現在および前のセッションで入力した項目にアクセスできます。

前の入力を再入力または編集するには、上、下、左、右矢印を使用して履歴をナビゲートします。入力したテキストは、カーソルの位置に挿入されます。[Delete]キーを使用して、テキストを削除します。[Enter]キーを押して、履歴の行を変更するかしないかに関係なく、これを再入力します。

上矢印および下矢印キーで、履歴を前後に1行ずつ移動します。次に例を示します。

jshell> class C {
...>    int x;
...> }
|  created class
jshell> /list

1 : class C
int x;
}

jshell> <up arrow>

上矢印キーを押すと、次のような行が表示されます。

jshell> /list

上矢印キーを再度押すと、クラス定義の最後の行が表示されます。

jshell> }

下矢印キーを押すと、/listコマンドに戻ります。[Enter]を押すと、実行されます。

jshell> /list

1 : class C {
int x;
}

[Ctrl]+上矢印を押すと、スニペットでは、上に移動します。1行のスニペットの場合、[Ctrl]+上矢印キーを押すと、上矢印キーのみを押す場合と同様に動作します。クラスCのような複数行のスニペットの場合、[Ctrl]+上矢印キーを押すと、行をスキップしてスニペットの先頭に移動します。

入力行の変更

履歴から取得した入力行を必要に応じて変更したり、再入力できます。これにより、変更が少ない場合に行を再入力する必要がなくなります。

現在のカーソル位置にテキストを追加するには、これを入力します。使用するキーおよび行内のカーソルの移動については、「入力行のナビゲーション」を参照してください。

次の表に、入力行の変更時に使用するキーと実行されるアクションを示します。

キー

アクション

[Delete]

オペレーティング・システムに応じて、カーソルの位置またはカーソルの後ろにある文字を削除します。

[Backspace]

カーソル位置の前にある文字を削除します。

[Ctrl]+[K]

カーソル位置から行の末尾までのテキストを削除します。

メタ・キー+[D]

カーソル位置から単語の末尾までのテキストを削除します。

[Ctrl]+[W]

カーソル位置から前の空白までのテキストを削除します。

[Ctrl]+[Y]

最後に削除されたテキストを行に貼り付けます。

メタ・キー+[Y]

[Ctrl]+[Y]、メタ・キー+[Y]を繰り返すと、削除したテキストが元に戻されます。

検索およびその他

履歴の検索は、作業対象の行を見つけやすくするJShellの機能であり、これを使用すると、1行ずつ履歴を調べる必要がありません。

検索を開始するには、[Ctrl]+[R]を押します。プロンプトで、検索文字列を入力します。検索では、最後の入力からさかのぼって処理し、JShellの前のセッションも処理対象です。次の例は、[Ctrl]+[R]を押した後に表示されるプロンプトを示しています。

jshell> <Ctrl+R>
((reverse-i-search)`':

「履歴のナビゲーション」の例に基づいて、classと入力すると、表示が変更され、テキストclassを含む直近の行が表示されます。

(reverse-i-search)`class': class C {

検索はインクリメンタルであるため、最初の文字cを入力しただけで前述の行が取得されます。[Ctrl]+[R]を繰返し押すと、履歴内を過去にさかのぼって検索を続行できます。[Ctrl]+[S]を押すと、現在の方向に検索が行われます。

[Ctrl]+[x]+[(]を押してからテキストを入力した後に[Ctrl]+[x]+[)]を押すと、キーボード・マクロを定義できます。マクロを使用するには、[Ctrl]+[x]+[e]を押します。

次の例は、検索およびマクロの作成を行う場合のキーの組合せを示しています。

キー

アクション

[Ctrl]+[R]

履歴を過去にさかのぼって検索します

[Ctrl]+[S]

履歴の新しい方に検索します

[Ctrl]+[X]+[(]

マクロ定義を開始します

[Ctrl]+[X]+[)]

マクロ定義を終了します

[Ctrl]+[X]+[e]

マクロを実行します

外部エディタ

コマンド・プロンプトでの編集の代替方法は、外部エディタを使用することです。このエディタでスニペットを編集および作成でき、特に複数行のスニペットに便利です。JShellを構成すると、選択したエディタを使用できます。

エディタで既存のすべてのスニペットを一度に編集するには、オプションを指定しないで/editを使用します。エディタで特定のスニペットを編集するには、スニペット名またはIDを指定して/editコマンドを使用します。/listコマンドを使用してスニペットIDを取得します。次の例は、エディタを開いてvolumeという名前のスニペット(「前方参照」で定義済)を編集しています。

jshell> /edit volume

エディタで新規スニペットを入力することもできます。エディタで保存する場合、変更されたスニペットまたは新規スニペットはJShellセッションに入力されます。スニペットからのフィードバックはJShellウィンドウに表示されますが、JShellプロンプトは表示されません。エディタを閉じるまで、JShellウィンドウにコマンドまたはスニペットは入力できません。

エディタを指定しない場合、環境変数JSHELLEDITOR、VISUAL、EDITORがこの順でチェックされます。これらのうちのいずれも設定しない場合、シンプルなデフォルト・エディタが使用されます。JShellを設定して選択したエディタを開くには、/set editorコマンドを使用します。/set editorコマンドの引数は、使用する外部エディタの起動に必要なコマンドです。次の例は、エディタとしてkwriteを設定し、既存のすべてのスニペットで使用可能なエディタを開いています。

jshell> /set editor kwrite
|  Editor set to: kwrite

jshell> /edit

外部エディタのウィンドウでxを定義して変更を保存すると、JShellウィンドウで次のような出力が得られます。

|  created variable x of type int with initial value 6

外部エディタを閉じると、JShellプロンプトがリストアされます。

jshell>

5 外部コード

外部クラスは、JShellセッションからクラス・パスを介してアクセスされます。外部モジュールは、モジュール・パス、追加のモジュール設定およびモジュール・エクスポート設定を介してアクセスされます。

トピック

- クラス・パスの設定

- モジュール・オプションの設定

クラス・パスの設定

JShellセッションでクラス・パスを介してアクセス可能な外部コードを使用できます。

コマンドラインでクラス・パスを次の例のように設定します。

% jshell --class-path myOwnClassPath

アクセスするパッケージが含まれるディレクトリまたはJARファイルをクラス・パスで参照します。コードをクラス・ファイルにコンパイルする必要があります。デフォルト・パッケージ(名前のないパッケージとも呼ぶ)のコードは、JShellからアクセスできません。クラス・パスの設定後、これらのパッケージはセッションにインポートできます。

jshell> import my.cool.code.*

/envコマンドを使用して、次の例のようにクラス・パスを設定することもできます。

jshell> /env --class-path myOwnClassPath
|  Setting new options and restoring state.

/envコマンドで実行状態がリセットされ、新しいクラス・パス設定またはそのコマンドで入力した他の環境設定で現在のスニペットがリロードされます。

モジュール・オプションの設定

モジュールはJShellでサポートされています。モジュール・パスを設定でき、解決のために追加モジュールを指定したり、モジュール・エクスポートを指定します。

モジュール・オプションは、/envコマンドのオプションまたは次の例に示すコマンドラインで指定できます。

% jshell --module-path myOwnModulePath  --add-modules my.module

現在の環境設定を確認するには、オプションを指定しないで/envを使用します。次の例には、「クラス・パスの設定」で設定したクラス・パス情報が含まれています。

jshell> /env
|     --add-modules my.module
|     --module-path myOwnModulePath
|     --class-path myOwnClassPath

オプションの詳細は、次のコマンドを入力してください。

jshell> /help context

6 フィードバック・モード

フィードバック・モードでは、JShell内でプロンプト、フィードバックおよび他の相互作用を判定します。異なるレベルのフィードバックを備えた事前定義済モードを提供します。必要に応じて、カスタム・モードを作成できます。

トピック

- フィードバック・モードの設定

- フィードバック・モードの定義

フィードバック・モードの設定

フィードバック・モードでは、JShellとの相互作用で使用されるプロンプトおよびフィードバックを定義します。事前定義済モードは利便性のために提供されています。必要に応じて、カスタム・モードを作成できます。

事前定義済モードは変更できませんが、カスタム・モードのベースとして使用できます。事前定義済モードは、詳細度の降順に詳細、通常, 簡易およびサイレントです。

次の表に、事前定義済モードの相違点を示します。

モード

値のスニペット

宣言

更新

コマンド

プロンプト

詳細

名前 ==> 値(および説明)

あり

あり

あり

\njshell>

通常

名前 ==> 値

あり

なし

あり

\njshell>

簡易

名前 ==> 値(式のみ)

なし

なし

なし

jshell>

サイレント

なし

なし

なし

なし

->

- モード列は、説明されているモードを示します。

- 値のスニペット列は、式、割当ておよび変数宣言などの値を持つスニペットに表示される内容を示します。

- 宣言列は、フィードバックを宣言またはメソッド、クラス、列挙、インタフェースおよび注釈インタフェースに対して表示するかどうかを示します。

- 更新列は、現在のスニペット以外のスニペットへの変更を表示するかどうかを示します。

- コマンド列には、コマンドが成功を示すフィードバックを返すかどうかを示します。

- プロンプト列は、使用されているプロンプトを示します。

デフォルトのフィードバック・モードは通常です。フィードバック・モードを変更するには、コマンドライン・オプションを設定するか、次の例に示すように/set feedbackコマンドを使用します。

jshell> /set feedback verbose
|  Feedback mode: verbose

jshell> 2 + 2
$1 ==> 4
|  created scratch variable $1 : int

jshell> /set feedback silent
-> 2 + 2
-> /set feedback normal
|  Feedback mode: normal

jshell> 2 + 2
$3 ==> 4

jshell> /set feedback concise
jshell> 2 + 2
$4 ==> 4
jshell>

設定が通常または詳細の場合、コマンド・フィードバックでは設定が表示されますが、簡易およびサイレントモードでは表示されないことに注意してください。モードがサイレントに設定されている場合、式2+2の異なる3つの形式のフィードバックにはフィードバックなしが含まれていることにも注意してください。

現在の使用可能なフィードバック・モードを確認するには、オプションを指定しないで/set feedbackコマンドを使用します。現在のモードがこれを設定するコマンドとして表示されることに注意してください。

jshell> /set feedback
|  /set feedback verbose
|
|  Available feedback modes:
|     concise
|     normal
|     silent
|     verbose

フィードバック・モードの定義

カスタム・フィードバックを使用すると、表示するプロンプトおよびJShellに入力する様々な要素に対して受け取るフィードバックを定義できます。

フィードバック・モードには、次の設定があります。

- プロンプト: 通常および継続

- 切捨て: 表示される値の最大の長さ

- 形式: 返されるフィードバックの形式

事前定義済モードは変更できませんが、次の例に示すように既存モードのコピーは容易に作成できます。

jshell> /set mode mine normal -command
|  Created new feedback mode: mine

新規モードmineは、通常モードのコピーです。-commandオプションは、コマンド・フィードバックが必要であることを示します。発生するアクションの説明がコマンドに不要な場合、-commandではなく、-quietを使用します。

プロンプトの設定

すべての/setコマンドと同様に、設定なしで/set promptコマンドを使用すると、現在の設定が表示されます。

jshell> /set prompt normal
|  /set prompt normal "\njshell> " "   ...> "

前述の例で返されるフィードバックでは、最初の文字列は通常のプロンプトで、2番目の文字列は継続プロンプトです。これは、スニペットが複数行にわたる場合に使用されます。次の例は、新しいモードに切り替えてこれを試す方法を示しています。

jshell> /set prompt mine "\nmy mode: "  ".......: "

jshell> /set feedback mine
|  Feedback mode: mine

my mode: class C {
.......:    int x;
.......: }
|  created class C

my mode:

プロンプトの文字列には%sが含まれることがありますが、これは次のスニペットIDに置き換えられます。ただし、コマンドが入力されたか、スニペットがエラーで終了した場合、ユーザーがプロンプトで入力する値にはそのIDを割り当てられない場合があります。

すべての設定には現在のセッションの期間があり、これらは/resetコマンドでリセットされません。今後のセッション用にこの設定をデフォルトにする場合、-retainオプションを使用して、これらを保持します。次の例は、カスタム・モードをセッション間で保持する方法を示しています。

my mode: /set mode mine -retain

my mode: /set feedback mine -retain
|  Feedback mode: mine

my mode: /exit
|  Goodbye
% jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

my mode:

切捨ての設定

値が長すぎる場合、表示時に切り捨てられます。/set truncationコマンドを使用して、値に表示される最大の長さを設定します。コマンドで設定が入力されない場合、現在の設定が表示されます。次の例は、通常モードから継承された設定を示しています。

my mode: /set truncation mine
|  /set truncation mine 80
|  /set truncation mine 1000 expression,varvalue

my mode: String big = IntStream.range(0,1200).mapToObj(n -> "" + (char) ('a' + n % 26)).collect(Collectors.joining())
big ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv ... fghijklmnopqrstuvwxyzabcd"

切捨ての設定が有効になる条件は、切捨ての長さの後に入力したオプション・セレクタによって判定されます。2つのタイプのセレクタ(オンライン・ヘルプでは、セレクタの種類と呼ばれる)が定義されています。

- ケース・セレクタは値が表示されるスニペットのタイプを指定します。

- アクション・セレクタはスニペットに発生した内容を示します。

セレクタの詳細は、/help /set truncationを入力してください。

前述の例に示された設定は、値が式(expressionケース・セレクタ)の値、または変数名(varvalueケース・セレクタ)を入力して明示的にリクエストしたように変数の値でないかぎり、値が80文字に切り捨てられるということです。順序は重要で、最後に入力したものが使用されます。順序が逆になっている場合、すべての値は80文字に切り捨てられます。

次の例は、デフォルトの切捨てを100に設定しています。明示的にリクエストされた場合にのみ、長い値を示します。

my mode: /set truncation mine 100

my mode: /set truncation mine 300 varvalue

my mode: big + big
$2 ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghi ... yzabcdefghijklmnopqrstuvwxyzabcd"

my mode: big
big ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstu
vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl ... jklmnopq
rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd"

my mode: /set mode mine -retain

新しい設定を維持するには、例の最後に示されているように変更内容を保持します。

形式の設定

スニペットの出力は、カスタマイズ可能な別の設定です。通常モードから継承される形式では、インポートはフィードバックを返さず、値のタイプは表示されません。

my mode: import java.beans.*

my mode: Locale.CANADA.getUnicodeLocaleAttributes()
$5 ==> []

スニペットの出力の形式は、/set formatコマンドを使用して設定されます。モード名とともにこれを入力します。設定しないと、現在の形式設定が表示されます。

my mode: /set format mine

このコマンドの拡張ヘルプが、/help /set formatコマンドで使用できます。これをこの項の後述の箇所(形式の定義時に使用するフィールドの説明)で参照として使用するために、これを指定できます。

表示される主なフィードバックは、displayフィールドによって判定されます。他のフィールドを定義すると、displayフィールドの定義に役立ちます。/help /set formatコマンドからの出力に表示されるように、サイレント以外の事前定義済モードは、これらのフィールドの一部を定義します。これらのフィールドは例に示されているモードで継承されます。インポートの表示定義が次の例に示されています。

my mode: /set format mine display "{pre}added import {name}{post}" import-added

my mode: /set format mine display "{pre}re-added import {name}{post}" import-modified,replaced

nameフィールドはスニペットの名前として事前定義されています。次の例は、フィードバックがインポートに対して返されることを示しています。

my mode: import java.beans.*
|  re-added import java.beans.*

表示定義で使用されるpreおよびpostフィールドは、フィードバック出力の各行の接頭辞および接尾辞の文字です。次の例は、縦棒の接頭辞を空の文字列に変更しています。

my mode: /set format mine pre ""

my mode: void m() {}
created method m()

my mode: import java.beans.*
re-added import java.beans.*

my mode: /set truncation mine
/set truncation mine 100
/set truncation mine 300 varvalue

注意:
接頭辞の文字を変更すると、feedbackコマンドを含め、すべてのフィードバックに影響を与えます。

値の表示時にタイプを表示するには、事前定義済モードで定義されるresultフィールドを変更します。

my mode: /set format mine result "{type} {name} = {value}{post}" added,modified,replaced-primary-ok

my mode: Locale.CANADA.getUnicodeLocaleAttributes()
Set<String> $11 = []

my mode: 2 + 2
int $12 = 4

この変更により、新規または更新された(added,modified,replaced)場合か、入力されたスニペット(primary)にあるか、エラーがない(ok)場合にのみ、resultが空でなくなります。

保持されているモードを永続的に削除するには、-deleteオプションを指定して-retainオプションを使用します。

my mode: /set feedback verbose -retain
|  Feedback mode: verbose

jshell> /set mode mine -delete -retain

7 スクリプト

JShellスクリプトは、ファイル内にある一連のスニペットおよびJShellコマンド、1つのスニペットまたは行単位のコマンドです。

スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。

スクリプト名

スクリプトの内容

DEFAULT

共通で必要なインポート宣言が含まれています。このスクリプトは、他の起動スクリプトが提供されない場合に使用します。

PRINTING

JShellメソッドを定義し、PrintStreamのprint、printlnおよびprintfメソッドにリダイレクトされます。

JAVASE

java.seモジュールで定義されるコアJava SE APIをインポートします。パッケージ数によっては、JShellの起動が大幅に遅延します。

トピック

- 起動スクリプト

- スクリプトの作成およびロード

起動スクリプト

起動スクリプトには、JShellセッションが起動されたときにロードされるスニペットおよびコマンドが含まれています。デフォルトの起動スクリプトには、共通のインポート文が含まれています。必要に応じて、カスタム・スクリプトを作成できます。

起動スクリプトは、jshellツールがリセットされるたびにロードされます。リセットは、初期起動時に/reset、/reloadおよび/envコマンドで発生します。スクリプトを設定しない場合、デフォルトの起動スクリプトのDEFAULTが使用されます。このデフォルト・スクリプトでは、共通して必要となるインポート宣言を定義しています。

注意:
Java言語では、java.langパッケージが自動的にインポートされることを定義しているため、このパッケージを明示的にインポートする必要はありません。

起動スクリプトを設定するには、/set startコマンドを使用します。

jshell> /set start mystartup.jsh

jshell> /reset
|  Resetting state.

すべての/setコマンドと同様に、-retainオプションを使用しないかぎり、設定の期間は現在のセッションです。通常、起動スクリプトの設定をテストする場合には、-retainオプションは使用しません。希望する設定が見つかった場合、-retainオプションを使用して、これを保持します。

jshell> /set start -retain

次回jshellツールを起動する際に、この起動スクリプトがロードされます。

起動スクリプトは、状態がリセットされた場合にのみ、現在のセッションにロードされることに注意してください。スクリプトの内容は格納されますが、スクリプトへの参照は格納されません。スクリプトは、/set startコマンドが実行されたときにのみ読み込まれます。ただし、事前定義済スクリプトは参照によってロードされ、更新できるのは新しいリリースのJDKからです。

起動スクリプトは、--startupコマンドラインのフラグで指定することもできます。

% jshell --startup mystartup.jsh

試用の場合、System.out.接頭辞を必要としないメソッドを出力する場合に役立ちます。事前定義済のPRINTINGスクリプトを使用して、print、printlnおよびprintfメソッドにアクセスします。/set startを使用すると複数の起動スクリプトを指定できます。次の例は、デフォルトのインポートおよび出力の両方の定義をロードする起動スクリプトを設定しています。

jshell> /set start -retain DEFAULT PRINTING

jshell> /exit
|  Goodbye

% jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell> println("Hello World!")
Hello World!

-retainフラグを使用して、jshellツールの今後のセッションの起動スクリプトとしてこれらの事前定義済スクリプトを設定します。引数を指定しないで/set startを使用すると、これらの起動スクリプトで定義された内容の詳細が表示されます。

コマンドラインで複数の起動スクリプトを設定するには、各スクリプトの--startupフラグを使用します。

% jshell --startup DEFAULT --startup PRINTING

スクリプトの作成およびロード

スクリプトを使用して、セッション時に使用可能なインポート文およびコードでJShellセッションを設定します。

スクリプトの作成

エディタでスクリプトを外部で作成するか、JShellで入力した項目から生成することもできます。次のコマンドのいずれかを使用して、JShellセッションのエントリからスクリプトを作成します。

jshell> /save mysnippets.jsh

jshell> /save -history myhistory.jsh

jshell> /save -start mystartup.jsh

例に示された最初のコマンドは、現在のアクティブなスニペットをmysnippets.jshに保存します。示されている2番目のコマンドは、すべてのスニペットおよびコマンドの履歴を有効なものも無効なものもmyhistory.jshに保存します。示されている最後のコマンドは、現在の起動スクリプト設定の内容をmystartup.jshに保存します。指定されたファイル名は、有効なファイル・パスおよび名前にします。

スクリプトのロード

JShellセッションが起動されると、スクリプトはコマンドラインからロードできます。

% jshell mysnippets.jsh

/openコマンドを使用すると、JShellセッション内でスクリプトをロードすることもできます。

jshell> /open PRINTING

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。