Compaq OpenVMS
DCL ディクショナリ


前へ 次へ 目次 索引



INQUIRE

値を SYS$COMMAND (通常は,会話型モードのターミナル,または主コマンド・プロシージャの次の行) から読み込んで,シンボルに割り当てます。

形式

INQUIRE シンボル名 [プロンプト文字列]


パラメータ

シンボル名

値を割り当てる,1〜 255 文字までの英数字シンボルを指定します。

プロンプト文字列

INQUIRE コマンドを実行するときに表示されるプロンプトを指定します。文字列は,自動的に大文字に変換されます。また,先行スペースと先行タブおよび後続のスペースと後続のタブは削除され,文字の間の複数のスペースおよびタブは1つのスペースに圧縮されます。

プロンプトに,小文字や句読点,複数のスペースとタブ,アット・マーク(@) が含まれる場合には,文字列を二重引用符 (" ") で囲みます。プロンプト文字列に二重引用符を使用する場合には,文字列全体を二重引用符で囲み,文字列の中で二重引用符が存在する場所に連続する2つの二重引用符 ("")を指定します。

システムがプロンプト文字列をターミナルに表示する場合,通常は文字列の最後にコロン (:) とスペースを表示します (/PUNCTUATION 修飾子を参照してください)。

プロンプト文字列を指定しない場合には,コマンド・インタプリタは,値を要求するプロンプトとしてシンボル名を使用します。


説明

INQUIRE コマンドは,プロセスの作成時に確立された入力ストリームにプロンプト・メッセージを表示し,入力ストリームからの応答を読み取ります。つまり,INQUIRE コマンドは,会話型で実行されているコマンド・プロシージャで実行される場合,コマンド・プロシージャのネスト・レベルにかかわらず,プロンプト・メッセージは常に端末に表示されます。コマンド・プロシージャの INQUIRE コマンドの入力は, RECALL バッファに入ることに注意してください。

プロンプト文字列に対する応答を入力した場合,その値は,指定されたシンボルに文字列として割り当てられます。小文字は自動的に大文字に変換され,先行および後続のスペースとタブが削除され,文字の間の複数のスペースとタブが単一のスペースに圧縮されます。大文字への変換を禁止し,スペースとタブをそのまま残す場合は,文字列を二重引用符で囲みます。

プロンプト文字列に対する応答を入力する場合,シンボルまたはレキシカル関数を使用するためには,単一引用符 (` ') を使用してシンボルの置換を要求します。

端末から会話型でデータを取得するには, READ コマンドも使用できることに注意してください。 READ コマンドは,ユーザが入力したとおりにデータを受け付けます。文字は,自動的には大文字に変換されず,スペースは圧縮されません。ただし,一重引用符を使用してシンボルの置換を要求しても,シンボルとレキシカル関数は変換されません。

バッチ・ジョブに INQUIRE コマンドを入力すると,コマンドは,コマンド・プロシージャの次の行から応答を読み取ります。プロシージャがネストしている場合,第1レベルのコマンド・プロシージャから応答が読み取られます。バッチ・ジョブのコマンド・プロシージャの次の行がドル記号 ($) で始まる場合,その行は INQUIRE に対する応答でなく,コマンドとして解釈されます。次に INQUIRE コマンドは,指定されたシンボルに空文字列を割り当て,バッチ・ジョブは INQUIRE コマンドの次の行のコマンドから処理を続けます。


修飾子

/GLOBAL

シンボルが,グローバル・シンボル・テーブルに登録されることを指定します。 /GLOBAL 修飾子を指定しない場合には,シンボルはローカル・シンボル・テーブルに登録されます。

/LOCAL (省略時の設定)

シンボルが,現在のコマンド・プロシージャのローカル・シンボル・テーブルに登録されることを指定します。

/PUNCTUATION (省略時の設定)

/NOPUNCTUATION

ターミナルにプロンプトが表示されるときに,そのプロンプトのあとにコロン(:) とスペースが出力されるかどうかを制御します。コロンとスペースを出力しない場合には, /NOPUNCTUATION を指定します。

#1

$ INQUIRE CHECK "Enter Y[ES] to continue" 
$ IF .NOT. CHECK THEN EXIT 

この INQUIRE コマンドは,ターミナルに次のプロンプト・メッセージを表示します。


Enter Y[ES] to continue: 

INQUIRE コマンドは,上記のようなプロンプトを表示し, CHECK というシンボルに割り当てられる値を要求します。 IF コマンドは,シンボル CHECK に割り当てられた値を評価します。 CHECK に割り当てられた値が真 (つまり,奇数の数値,T,t,Y,y から始まる文字列,あるいは奇数の数字列)の場合には,プロシージャは実行を継続します。

CHECK に割り当てられた値が偽 (つまり,偶数の数値,T,t,Y,y 以外の文字から始まる文字列,あるいは偶数の数字列)の場合には,プロシージャの実行は終了します。

#2

$ INQUIRE COUNT 
$ IF COUNT .GT. 10 THEN GOTO SKIP 
  . 
  . 
  . 
$ SKIP: 

この INQUIRE コマンドは,次のメッセージを表示し, COUNT に割り当てられる値を要求します。


COUNT: 

このあと,このコマンド・プロシージャは, COUNT というシンボルに割り当てられた値を評価し,次に続くコマンドを実行するのか,あるいは制御を SKIPというラベルの行に渡すのかを判断します。

#3

$ IF P1 .EQS. "" THEN INQUIRE P1 "FILE NAME" 
$ FORTRAN 'P1' 

この IF コマンドは,P1 というシンボルが空文字列であるかどうかを調べることで,パラメータがコマンド・プロシージャに渡されたかどうかを調べます。このシンボルの値が空文字列の場合には,パラメータが指定されていないので, INQUIRE コマンドを実行してパラメータを要求します。 P1 が指定されていた場合には,INQUIRE コマンドは実行されず, Fortran コマンドがパラメータに指定された名前のファイルをコンパイルします。


INSTALL

Install ユーティリティを起動します。 Install ユーティリティは選択した実行可能イメージや共有可能イメージをシステムに "知らせ",適切な属性を割り当てることにより,それらのイメージの性能を向上させます。

Install ユーティリティについての詳細は,『Compaq OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』またはオンライン・ヘルプを参照してください。


形式

INSTALL [サブコマンド] [ファイル指定]


JAVA

JAVA コマンドは,Java バイト・コードを実行するインタプリタを起動します。これは,JAVAC などの Java コンパイラで作成された Java クラス・ファイルを実行します。

この参照ページでは,JAVA コマンドについてだけ説明します。

OpenVMS システムに JDK ドキュメントがインストールされている場合は,ブラウザで次の場所を参照することによって JDK ツール (コマンド) についてのドキュメントおよびその他 Java 参照情報を表示することができます。


SYS$COMMON:[SYSHLP.JAVA]INDEX.HTML 


形式

JAVA "クラス名" 引数


パラメータ

"クラス名"

引用符で囲んだ,実行するクラスの名前です。クラス名 パラメータは,たとえば次の例のように名前にそのパッケージを含み,完全に限定されるものでなければなりません。


$ JAVA "java.lang.String" 

この例では,JAVA はディレクトリ・パスを [JAVA.LANG] と解釈し,クラスのファイル名を STRING.CLASS と解釈します。

引数

クラスの mainメソッドに渡される引数です。

説明

Java はクラスのバイナリ表現が ファイル名 .CLASS というファイルに存在していることを想定します。このファイルは,対応するソース・ファイルを JAVAC コンパイラでコンパイルして作成されたものです。すべての Java クラス・ファイルには .CLASS というファイル名拡張子が付きます。これは,クラスをコンパイルした際に,コンパイラが自動的に付加します。実行するクラスには,次のように定義された mainメソッドを含まなければなりません。


class Aclass { 
    public static void main(String argv[]){ 
        . . . 
    } 
} 

mainが 1 つあるいは複数のスレッドを作成しない場合は, Java インタプリタは mainメソッドを実行して終了します。 mainによっていくつかのスレッドが作成された場合は,すべてのスレッドが終了するまで JAVA コマンドは終了しません。

ユーザ独自のクラスを定義する場合は,その位置を指定しなければなりません。このためには,CLASSPATH 論理名 (UNIX スタイルのディレクトリ・パス) あるいは JAVA$CLASSPATH 論理名 (OpenVMS スタイルのディレクトリ・パス) を使用します。

CLASSPATH 論理名は,たとえば次のようにパスを指定する複数のディレクトリをコロンで区切ったリストから構成されます。


.:/home/xyz/classes:/usr/local/java/classes 

また,UNIX システムとは異なり,CLASSPATH にシステム・クラスを明示的に指定する必要もあります。次の例を参照してください。


$ define/nolog CLASSPATH "/sys$common/java/lib/JDK116_CLASSES.ZIP:." 

JAVA$CLASSPATH 論理名を使用すると,OpenVMS ファイル指定を使用してクラス・パスを定義することができます。

次の 2 つの宣言文の例は,いずれも同じ結果となります。


   $ DEF JAVA$CLASSPATH USER1$:[SMITH.KIT]JDK115_CLASSES.ZIP,[] 
 
   $ DEF CLASSPATH "/user1$/smith/kit/jdk115_class.zip:." 

次の点に注意してください。

注意

任意の Java ツールによって読み込まれるすべての Java ファイル,あるいは (CLASSPATH にリストされ) 入力クラス・ライブラリとしてサービスされるすべての Java ファイルは Stream_LF 形式でなければなりません。

ファイルのレコード形式を判定するには,次のようにします。


    $ DIR/FULL MyFile.java 

次の行を確認してください。


    Record format 

たとえばテキスト・エディタを使用して最初に OpenVMS システムで作成されたファイルは,省略時の設定では可変長のレコード形式を持ちます。

たとえば,可変長レコード形式を持つ *.JAVA ファイルが正しく編集されていてエラーがない場合あっても,コンパイル時にエラーが発生してコンパイラは正しい検査結果を出力しません。

ファイルを Stream_LF レコード形式にするには,次のように変換します。


   $ CONVERT/FDL=SYS$INPUT input_file-name output_file-name 
   FILE 
       ALLOCATION              4 
       BEST_TRY_CONTIGUOUS     yes 
       EXTENSION               0 
       ORGANIZATION            sequential 
   RECORD 
       BLOCK_SPAN              yes 
       CARRIAGE_CONTROL        carriage_return 
       FORMAT                  stream_LF 
       SIZE                    0 

Stream_LF 形式でないファイルを CLASSPATH で使用した場合,次のようなエラーが表示されます。


    Unable to initialize threads: cannot find class java/lang/Thread 

通常,JAVAC を使用してソース・ファイルをコンパイルし,続いて JAVA を使用してそのプログラムを実行します。ただし,/CHECKSOURCE 修飾子を指定すると, JAVA コマンドを使用してプログラムのコンパイルと実行を行うことができます。各クラス・ファイルがロードされる場合に,その更新日付がクラス・ソース・ファイルの更新日付と比較されます。ソース・ファイルの更新日付の方が新しい場合は,再コンパイルされて新しいクラス・ファイルがロードされます。すべてのクラスが正しくコンパイルされてロードされるまで, JAVA はこの手順を繰り返します。

インタプリタは,クラスが検証メカニズムをパスした正当なものであるかどうかを判定することができます。この検証により,クラス・ファイルを実行する前に言語の制限に違反していないことを保証します。

このコマンドには,次のいずれかの修飾子を指定することができます。

OpenVMS DCL スタイルを使用する場合は,次のように設定します。


    $ DEFINE JAVA$USE_DCL 1 
    $ @SYS$MANAGER:JAVA$SETUP 

Tru64 UNIX スタイルを使用する場合は,次のように設定します。


    $ DEASSIGN JAVA$USE_DCL 
    $ @SYS$MANAGER:JAVA$SETUP 

以降の修飾子についての説明では,両方のスタイルについて説明します。


修飾子

/CHECKSOURCE

-cs

-checksource

コンパイルされたクラスをロードする場合,このオプションによりクラス・バイト・コード・ファイルの更新時刻がクラス・ソース・ファイルの更新時刻と比較されます。ソース・ファイルの更新時刻の方が新しい場合は,再コンパイルされて新しいクラス・ファイルがロードされます。

/CLASSPATH=パス

-classpath パス

JAVA コマンドがクラスを検索する際に使用するパスを指定します。省略時のパスあるいは CLASSPATH 環境変数が設定されている場合は,それを上書きします。ディレクトリはコロンで区切ります。 /CLASSPATH あるいは -classpath のいずれを使用しても, パス の一般的な形式は次のとおりです。


.:{パス} 

たとえば,次のようになります。


.:/home/xyz/classes:/usr/local/java/classes 

/JIT

/NOJIT

-jit

-nojit

JAVA コマンドを入力すると,省略時の設定では JIT (ジャスト・イン・タイム) コンパイラが起動します。 JIT の代わりにインタプリタを使用して JAVA を起動するには次のように指定します。


$ JAVA /NOJIT ... 

Java デバッガは省略時の設定ではインタプリタを起動します。 JIT コンパイラを使用して Java デバッガを起動するには, /JIT 修飾子を明示的に指定しなければなりません。

アプレットビューアを起動すると,省略時の設定では JIT を起動します。インタプリタを使用してアプレットビューアを起動するには,次のように指定します。


$ APPLETVIEWER /PARAMETERS="-nojit" 

/MAXHEAP=x

-mx x

メモリ割り当てプール (ガーベッジ・コレクション・ヒープ) の最大サイズを x に設定します。省略時の設定は 6 MB メモリです。 x の値は,1000 バイト以上でなければなりません。

省略時の設定では,x の単位はバイトです。 k あるいは kilobaytes,m あるいは megabytes を追加することで, x にキロバイトあるいはメガバイトを指定することができます。

/INITHEAP=x

-ms x

メモリ割り当てプール (ガーベッジ・コレクション・ヒープ) の初期サイズを x に設定します。省略時の設定は 6 MB メモリです。 x の値は,1000 バイト以上でなければなりません。

省略時の設定では,x の単位はバイトです。 k あるいは kilobaytes,m あるいは megabytes を追加することで, x にキロバイトあるいはメガバイトを指定することができます。

/NOASYNCGC

-noasyncgc

非同期ガーベッジ・コレクションを無効にします。この修飾子を指定した場合,明示的にガーベッジ・コレクションが呼び出されるか,プログラムがメモリを消費してしまうまでは,ガーベッジ・コレクションは起動されません。通常,ガーベッジ・コレクションは非同期スレッドとして他のスレッドとパラレルに動作します。

/NOCLASSGC

-noclassgc

Java クラスのガーベッジ・コレクションを無効にします。省略時の設定では, Java インタプリタはガーベッジ・コレクション時に未使用の Java クラスのスペースを回収します。

/PROFILE[=ファイル名]

-prof[: ファイル名]

このオプションは JAVA_G でのみ有効です。

Java プロファイリングを有効として Java ランタイムを起動します。

ファイル名を指定しない場合,プロファイル結果は []JAVA.PROFファイルに置かれます。

ファイル名を指定した場合,プロファイル結果は指定したファイルに置かれます。

/LOGLEVEL

-l

ログ・レベルを設定します (JAVA_G のみ)。

/VERSION

-version

ビルドのバージョン情報を表示します。

/HELP

-help

使用法を表示します。

/MAXCSTACK=x

-ss x

各 Java スレッドは 2 つのスタックを持っています。1 つは Java コード用で, 1 つは C コード用です。 /MAXCSTACK オプションは,スレッド内の C コードで使用可能な最大スタック・サイズを x に設定します。 JAVA に渡されたプログラムの実行時に作成されたすべてのスレッドは, x の C スタック・サイズを持ちます。省略時の設定では,x の単位はバイトです。 x の値は,1000 バイト以上でなければなりません。

k あるいは kilobaytes,m あるいは megabytes を追加することで, x の単位を変更することができます。省略時の設定では,スタック・サイズは 128 キロバイトです (/MAXCSTACK=128k)。

/MAXJSTACK=x

-oss x

各 Java スレッドは 2 つのスタックを持っています。 1 つは Java コード用で,1 つは C コード用です。 /MAXJSTACK オプションは,スレッド内の Java コードで使用可能な最大スタック・サイズを x に設定します。 JAVA に渡されたプログラムの実行時に作成されたすべてのスレッドは, x の Java スタック・サイズを持ちます。省略時の設定では,x の単位はバイトです。 x の値は,1000 バイト以上でなければなりません。

k あるいは kilobaytes,m あるいは megabytes を追加することで x の単位を変更することができます。デフォルトのスタック・サイズは 400 キロバイトです (/MAXJSTACK=400k)。

/TRACE

-t

実行された命令のトレースを表示します (JAVA_G のみ)。

/COMMAND_LINE=ファイル名

-V ファイル名

コマンド・ラインのオプションおよび引数を指定されたファイルから取得し,それ以外のコマンド・ラインのオプションおよび引数を無効とします。

この修飾子は OpenVMS システムのみでサポートされます。

/VERBOSE

-v

-verbose

クラス・ファイルがロードされるたびに, JAVA が標準出力にメッセージを表示するようにします。

/VERBOSEGC

-verbosegc

ガーベッジ・コレクタがメモリを解放するたびに,メッセージを表示するようにします。

/VERIFY

/NOVERIFY

-verify

-noverify

クラス・ファイルのバイト・コードの検証を実行します。ただし,JAVA/VERIFY はすべてのコードの完全な検証を行うものではないことに注意してください。インタプリタによって実際に実行されないコード・パスは検証されません。したがって,クラス・ファイル内のすべてのコード・パスが実際に実行されるまでは, JAVA/VERIFY のクラス・ファイルのコード検証を保証することはできません。

/NOVERIFY 修飾子 (-noverify オプション) は,検証を無効にします。

/VERIFYREMOTE

-verifyremote

クラスローダを経由してシステムにロードされるすべてのコードについて,検証を実行するようにします。省略時の設定は /VERIFYREMOTE です。

/SYSTEM_PROPERTY="プロパティ名=新しい値"

-D プロパティ名=新しい値

プロパティ値を再定義します。 プロパティ名 は値を変更したいプロパティ名で, 新しい値 は変更後の値です。たとえば,次のコマンド・ラインでは,awt.button.color プロパティ値を "green" に設定します。


% java -Dawt.button.color=green ... 

JAVA コマンドのコマンド・ラインには,任意の数の /SYSTEM_PROPERTY 修飾子を指定することができます。



$ JAVA /CLASSPATH=(USER1$:[mydir1],[.mydir2],[.mydir3]myzip.zip,[])- 
                  /INITHEAP="10m"/MAXHEAP="20m"- 
                  /SYSTEM_PROPERTY="XXX=ZZZ"  "MyTestProgram" 

この例では,MyTestProgram.class ファイルに対して Java ランライム・インタプリタを実行します。

サーチ・パスに USER1$:[mydir1],[.mydir2],[.mydir3]myzip.zip,[] を使用して, CLASSPATH 論理名の現在の設定を上書きします。

実行中,システム・プロパティ XXX は ZZZ に設定されます。インタプリタは 10 メガバイトの初期ヒープ・サイズで実行されます。

"MyTestProgram" クラス・ファイルは,綴りの大文字と小文字の区別を保持するように引用符で囲まれていなければならないことに注意してください。引用符を使用しない場合,OpenVMS はすべての文字列を大文字に変更し,ソース・ファイルに記述されているクラス名と異なることになります。


前へ 次へ 目次 索引