cjjspc(JSPの事前コンパイル)
形式
- Windowsの場合
cjjspc [-jspworkdir <JSPワークディレクトリ名>] [-classpath <クラスパス1>[;<クラスパス2>…]] [-excludefile <JSPファイルパス1>[;<JSPファイルパス2>…]| -excludelist <コンパイル対象外リストファイルパス>] [-keepgenerated] [-source {1.6|6|1.7|7|1.8|8|9}] [-pageencoding <文字エンコーディング>] [-resultlist <実行結果リストファイルパス>] [-customactiondeclarevariable] [-customactionignorecaseattributename] [-usebeannocheckclass] [-usebeannocheckduplicateid] [-tagnocheckrtexprvalue] [-tagrtexprvalueterminate] [-taglibnocheckprefix] [-debugging] [-jsppagedisablebom] [-nojavaeetaglib] [-lowerversion {2.4|2.5}] [-addimport <クラス名1>[,<クラス名2>…]] -root <Webアプリケーションのルートディレクトリ> [<JSPファイルパス>...]
- UNIXの場合
cjjspc [-jspworkdir <JSPワークディレクトリ名>] [-classpath <クラスパス1>[:<クラスパス2>…]] [-excludefile <JSPファイルパス1>[:<JSPファイルパス2>…]| -excludelist <コンパイル対象外リストファイルパス>] [-keepgenerated] [-source {1.6|6|1.7|7|1.8|8|9}] [-pageencoding <文字エンコーディング>] [-resultlist <実行結果リストファイルパス>] [-customactiondeclarevariable] [-customactionignorecaseattributename] [-usebeannocheckclass] [-usebeannocheckduplicateid] [-tagnocheckrtexprvalue] [-tagrtexprvalueterminate] [-taglibnocheckprefix] [-debugging] [-jsppagedisablebom] [-nojavaeetaglib] [-lowerversion {2.4|2.5}] [-addimport <クラス名1>[,<クラス名2>…]] -root <Webアプリケーションのルートディレクトリ> [<JSPファイルパス>...]
機能
JSPファイルからJavaソースファイルを生成およびコンパイルし,クラスファイルを生成します。このコマンドを実行したときのログは,標準出力または標準エラー出力します。Webアプリケーションに含まれるすべてのJSPファイルをコンパイルできます。
-excludelistオプションまたは-excludefileオプションを指定することで,コンパイルする必要のないJSPファイルをコンパイル対象外ファイルとして指定できます。コンパイル対象外ファイルには,次の「コンパイルが不要なファイル」または「再度コンパイルする必要がないファイル」のどちらかの条件に当てはまるファイルを指定してください。
-
次のどれかに該当するファイルでコンパイルが不要なファイル
-
拡張子が「.jsp」または「.jspx」のファイル
-
Deployment Descriptor(/WEB-INF/web.xml)の<jsp-file>に指定されたファイル
-
Deployment Descriptor(/WEB-INF/web.xml)の<jsp-property-group><url-pattern>タグに合致するファイル
-
cjjspcコマンドの引数に指定したファイル
-
-
コンパイル済みであり,再度コンパイルする必要がないファイル
なお,-excludelistオプションと-excludefileオプションの併用はできません。併用した場合はエラーメッセージが表示され,処理が終了します。
また,-resultlistオプションと-excludelistオプションに同じファイルを指定することで,一度コンパイルに成功したJSPファイルをコンパイル対象外ファイルに指定できます。また,コンパイルに失敗したJSPファイルがコンパイル不要な場合は,実行結果リストファイルに出力されたコンパイルに失敗したJSPファイルパスの行頭の「#」を削除することで,コンパイル対象外に指定できます。
引数
- -jspworkdir <JSPワークディレクトリ名>
-
JSPワークディレクトリ(<Webアプリケーションのルートディレクトリ>/WEB-INF/cosminexus_jsp_work)のディレクトリ名を変更する場合に指定します。JSPワークディレクトリ名に使用できる文字列は,A〜Z,a〜z,0〜9の半角英数字と「_(半角アンダースコア)」だけです。また,次のディレクトリ名は,大文字・小文字の区別なく,JSPワークディレクトリ名として使用できません。
-
lib
-
tags
-
classes
-
- -classpath <クラスパス>
-
JSPのコンパイルに必要となるクラスのクラスパスを絶対パスで指定します。デフォルトで指定されているクラスパスは,次のとおりです。
-
<Webアプリケーションのルートディレクトリ>/WEB-INF/classes
-
<Webアプリケーションのルートディレクトリ>/WEB-INF/libに含まれるjarファイル
-
Servlet 2.5 APIなどを含んだアプリケーションサーバのシステムが使用するクラスライブラリ
複数のクラスパスを指定する場合,Windowsでは「;(半角セミコロン)」,UNIXでは「:(半角コロン)」で区切って指定します。なお,アプリケーションサーバのシステムが使用するクラスライブラリ内のクラスファイルと-classpathオプションに指定されたクラスパスに含まれるjarファイル内のクラスファイルが重複している場合は,アプリケーションサーバのシステムが使用するクラスライブラリ内のクラスファイルが優先して使用されます。
-
- -excludefile <JSPファイルパス>
-
コンパイル対象外とするJSPファイルを指定します。
複数のJSPファイルパスを指定する場合,Windowsでは「;(半角セミコロン)」,UNIXでは「:(半角コロン)」で区切って指定します。JSPファイルは,Webアプリケーションのルートディレクトリからの相対パスを指定します。ファイルパスにワイルドカード文字「*(アスタリスク)」や空白文字列を含める場合は,ファイルパスを必ず「"(ダブルクォーテーション)」で囲みます。
ファイルパスに区切り文字(Windowsの場合「;(半角セミコロン)」,UNIXの場合「:(半角コロン)」)を含めることはできません。ファイルパスに区切り文字を含める必要がある場合は,コンパイル対象外リストファイルを使用してください。コンパイル対象外リストは-excludelistオプションで指定します。
指定方法を次に示します。
- 指定方法(Windowsの場合)
cjjspc -excludefile <JSPファイルパス1>;<JSPファイルパス2>;… -root <Webアプリケーションのルートディレクトリ>
- 指定方法(UNIXの場合)
cjjspc -excludefile <JSPファイルパス1>:<JSPファイルパス2>:… -root <Webアプリケーションのルートディレクトリ>
- -excludelist <コンパイル対象外リストファイルパス>
-
コンパイル対象外とするJSPファイルを記述したコンパイル対象外リストファイルを指定します。コンパイル対象外リストファイルとは,コマンドによるJSP事前コンパイルを実行する際,コンパイルの対象外とするJSPファイルパスを記述するためのテキストファイルです。
ファイルは相対パスまたは絶対パスで指定します。
指定方法とファイル形式を次に示します。
- コンパイル対象外リストファイルの指定方法
cjjspc -excludelist <コンパイル対象外リストファイルのパス> -root <Webアプリケーションのルートディレクトリ>
- コンパイル対象外リストファイルのファイル形式
# コメント <コンパイルの対象外とするJSPファイルパス1> <コンパイルの対象外とするJSPファイルパス2> …
- -keepgenerated
-
JSPをコンパイルする際,JSPトランスレーション時に生成されたJavaソースファイルを残す場合に指定します。作成されたJavaソースファイルは,コンパイルされたクラスファイルと同じディレクトリに作成されます。
指定方法を次に示します。
- 指定方法
cjjspc -keepgenerated -root <Webアプリケーションのルートディレクトリ>
- -source {1.6|6|1.7|7|1.8|8|9}
-
JSPをコンパイルする際,JSPトランスレーション時にJavaソースファイルが生成されます。このJavaソースファイルをコンパイルするJava言語仕様のバージョンを指定します。例えば,JSPファイルに,J2SE1.6の言語仕様に依存したプログラムコードを記述している場合は,このオプションに1.6を指定してください。このオプションを省略した場合,インストールしているJDKのJava言語仕様に従ってコンパイルします。
指定方法を次に示します。
- 指定方法
cjjspc -source <バージョン> -root <Webアプリケーションのルートディレクトリ>
- -pageencoding <文字エンコーディング>
-
JSPファイルのデフォルトの文字エンコーディングを指定します。デフォルトの文字エンコーディングとして設定できる文字は,JavaVMがサポートしている文字エンコーディングとなります。JavaVMがサポートしている文字エンコーディングについては,JDKのドキュメントのサポートされているエンコーディングに関する説明を参照してください。
また,指定できる文字列は,java.nio API用の正準名とjava.lang API用の正準名に記載されている文字エンコーディング,およびそれらの別名になります。サポートされていない文字エンコーディングを指定した場合,エラーメッセージが出力されて処理が終了します。
- -resultlist <実行結果リストファイルパス>
-
コンパイル実行結果リストファイルを絶対パスまたはカレントディレクトリからの相対パスで指定します。コンパイル実行結果リストファイルには次のリストが出力されます。
-
コンパイル対象外のJSPファイルパス
-
コンパイルに成功したJSPファイルパス
-
コンパイルに失敗したJSPファイルパス
指定方法と出力形式を次に示します。
- 指定方法
cjjspc -resultlist <実行結果リストファイルのパス> -root <Webアプリケーションのルートディレクトリ>
- 実行結果リストファイルの出力形式
# Excluded JSP files. <コンパイル対象外JSPファイルの一覧> # Compiled JSP files. <コンパイルに成功したJSPファイル> # <コンパイルに失敗したJSPファイル> …
指定したファイルと同名のファイルが存在した場合は,ファイルを上書きして処理を続行します。
-
- -customactiondeclarevariable
-
複数のカスタムタグで,スクリプト変数名とスクリプト変数のスコープが重複する場合,JSPファイルから生成されたJavaコードで,2回目のカスタムタグに対応するスクリプト変数の変数宣言を出力するときに,このオプションを指定します。このオプションを指定しない場合は,スクリプト変数の変数宣言を出力しません。
(*)スクリプト変数のスコープは,javax.servlet.jsp.tagext.TagExtraInfoクラスのサブクラス,またはTLDファイルのvariable要素内のscope要素で指定できます。
- -customactionignorecaseattributename
-
カスタムタグで指定された属性が,TLDファイルまたはタグファイルで定義されているかどうかのチェックで,大文字小文字を区別しない場合に指定します。
- -usebeannocheckclass
-
JSPコンパイル時に<jsp:useBean>タグのclass属性値の検証をしない場合に指定します。
- -usebeannocheckduplicateid
-
JSPコンパイル時に<jsp:useBean>タグのid属性値の検証をしない場合に指定します。
- -tagnocheckrtexprvalue
-
Expressionが指定できないタグの属性値にExpressionが指定されているかどうかを検証しない場合に指定します。
- -tagrtexprvalueterminate
-
タグの属性値が,「"<%=」(または「'<%=」)で開始していて,「%>"」(または「%>'」)で終了していない属性値がある場合,「"」(または「'」)で囲まれた値を文字列として扱うときに指定します。
- -taglibnocheckprefix
-
aglibディレクティブの前に,taglibディレクティブで指定したprefixを使用したカスタムタグを記述しているかどうかをチェックしない場合に指定します。
- -debugging
-
JSPデバッグ機能を有効にする場合に指定します。
JSPデバッグ機能が有効な場合,JSPファイルから作成されたサーブレットのclassファイルにSMAPが埋め込まれます。また,このオプションを指定した場合と指定しない場合で,出力されるクラス名が異なります。詳細については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.4 JSPデバッグ機能」を参照してください。
- -jsppagedisablebom
-
Servlet 2.5仕様以降のWebアプリケーションのJSPページでBOMによる文字エンコーディングの決定をしない場合に指定します。
- -nojavaeetaglib
-
Servle t2.5仕様以降のWebアプリケーションでJava EE仕様に含まれるタグライブラリ(JSTLおよびJSF)を自動的にマッピングしない場合に指定します。また,Servlet 2.5仕様以降のWebアプリケーションで,アプリケーションサーバが提供するタグライブラリ(JSTL,JSF)以外を使用する場合に指定します。
- -lowerversion {2.4|2.5}
-
設定したWebアプリケーションのバージョンで,JSPファイルをコンパイルできます。
指定方法を次に示します。
- 指定方法
cjjspc -lowerversion <バージョン> -root <Webアプリケーションのルートディレクトリ>
- -addimport <クラス名1>[,<クラス名2>…]
-
暗黙インポートするクラス名(完全修飾名のクラス名,または「パッケージ名.*」)を指定します。複数のクラス名を指定する場合は,クラス名とクラス名を「,(コンマ)」で区切って指定します。暗黙インポートの詳細については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.3.7 page/tagディレクティブのimport属性暗黙インポート」を参照してください。
- -root <Webアプリケーションのルートディレクトリ>
-
コンパイル対象のJSPを含むWebアプリケーションのルートディレクトリを指定します。カレントディレクトリからの相対パスまたは絶対パスで指定します。パス名に空白が含まれるときは,「"(ダブルクォーテーション)」で囲みます。
- <JSPファイルパス>...
-
JSPファイル単位のコンパイルを実行する場合に指定します。JSPファイルパスは,-rootで指定したWebアプリケーションのルートディレクトリからの相対パスで指定します。パスの区切り文字には「/」を使用して,パスの先頭には必ず「/」を付けます。JSPファイルパスを複数指定する場合は,それぞれのJSPファイルパスを半角スペースで区切って,複数のJSPファイルパスを指定します。省略した場合は,Webアプリケーション内のすべてのJSPファイルがコンパイル対象となります。パス名にアスタリスク(*),または空白が含まれるときは,JSPファイルパスごとに「"(ダブルクォーテーション)」で囲みます。
戻り値
- 0:
-
正常終了しました。
- 1:
-
オプション解析エラーです。
- 2以上:
-
異常終了しました。
注意事項
-
このコマンドを実行したときには,Deployment Descriptor(/WEB-INF/web.xml)およびTLDファイルが,DTDまたはXMLスキーマに従っているか検証します。Deployment Descriptor(/WEB-INF/web.xml)がスキーマに従っていない場合は,エラーとなりコマンドの処理が終了します。また,TLDファイルがスキーマに従っていない場合も,JSPがトランスレーションしているときにエラーとなります。したがって,スキーマに従っていない場合は,エラーとなりコマンドの処理が終了します。
-
タグファイル,静的インクルードされたファイル,またはTLDファイルを更新した場合,更新したファイルを参照するすべてのJSPファイルをコンパイルしてください。
-
環境変数「CJ_CMD_JVM_ARGS」を設定すると,cjjspcコマンドが動作するJavaVMの起動オプションを変更できます。
デフォルトではJavaVMの起動オプションに「-Xmx512m」(Javaヒープメモリ領域の最大値が512MB)が設定されています。cjjspcコマンドで大規模なWebアプリケーションをコンパイルする場合,Javaヒープメモリ領域の最大値を超え,java.lang.OutOfMemoryErrorが発生するおそれがあります。したがって,大規模なWebアプリケーションをコンパイルする場合は,あらかじめ環境変数「CJ_CMD_JVM_ARGS」に,適切なJavaヒープメモリ領域を指定する必要があります。
また,文字エンコーディングの別名であるshift_jis,csshiftjis,ms_kanji,x-sjisは,JDK1.4.0ではMS932の別名でしたが,JDK1.4.2以降ではSJISの別名に変更になりました。今までMS932の別名として shift_jis,csshiftjis,ms_kanji,x-sjis を使用していたプログラムをそのままこのバージョンで実行すると文字化けすることがあります。shift_jis,csshiftjis,ms_kanji ,x-sjis を以前のバージョンと同じく,MS932の別名として実行させる場合,環境変数「CJ_CMD_JVM_ARGS」に,「-Dsun.nio.cs.map=Windows-31J/Shift_JIS」を指定してください。