Oracle Java Compilerの起動
コマンドラインからOracle Java Compiler(OjC)を起動するには、次のようにします。
コマンドライン・オプション
- -classpath path
-
- クラスの検索に使用するパス。デフォルトのCLASSPATHまたはCLASSPATH環境変数より優先されます。ディレクトリはセミコロンで区切ります。たとえば、次のようになります。
-
ojc -classpath c:¥mydir;c:¥jdeveloper¥myclasses foo.java
-
-
(ここではデフォルトのターゲットJDK 1.4に対して)Java 2プラットフォームを使用している場合、CLASSPATHの前にSYSTEMCLASSPATHが追加されます。前述の例では、次のようになります。
%JAVAHOME%¥jre¥lib¥rt.jar;
%JAVAHOME%¥jre¥lib¥i18n.jar;
%JAVAHOME%¥jre¥lib¥sunrsasign.jar;
%JAVAHOME%¥jre¥lib¥jsse.jar;
%JAVAHOME%¥jre¥lib¥jce.jar;
%JAVAHOME%¥jre¥lib¥charsets.jar;
%JAVAHOME%¥jre¥lib¥classes;
c:¥mydir;
c:¥jdeveloper¥myclasses
-
- JAVAHOMEが定義されていない場合は、
jdev.conf
内のSetJavaHome
で定義されたJDKが使用されます。JAVAHOMEが存在しない場合は、<jdev_install>
/jdk
にJDKが存在すれば、これが使用されます。
-
- ターゲットJDKが1.1(-target 1.1を使用)の場合、CLASSPATHにSYSTEMCLASSPATHが追加されます。前述の例では、次のようになります。
-
c:¥mydir;
c:¥jdeveloper¥myclasses
%JAVAHOME%¥lib¥classes.zip;
%JAVAHOME%¥classes
-
- SYSTEMCLASSPATHを変更するには、-sysclasspathオプションまたは-bootclasspathオプションを使用します。
-
- -sourcepath pathlist
-
- 必要なJavaファイルの検索に使用するパスのセミコロンで区切られたリスト。
-
- -sysclasspath pathlist
-
- 必要なclassファイルの検索に使用するパスのセミコロンで区切られたリスト。
-
- -bootclasspath pathlist
-
- -sysclasspathと同じ。
-
- -d outdir
-
- クラス(宛先)ファイル階層のルート・ディレクトリ。
-
- 次に例を示します。
-
ojc -d C:¥JDeveloper¥myclasses JavaBean.java
-
- この場合、JavaBean.javaに、MyPackageというパッケージ文が含まれていると仮定すると、JavaBean.javaソース・ファイルで定義されたクラスのclassファイルは、C:¥JDeveloper¥myclasses¥MyPackageディレクトリに保存されます。
-
- Javaファイルは、SOURCEPATHから読み取られ、クラス・ファイルはCLASSPATHディレクトリに書き込まれます。宛先ディレクトリは、CLASSPATHに含まれる場合もあります。デフォルトの宛先は、ソース・ファイルのパッケージ構造と一致し、ソースのルート・ディレクトリから始まります。
-
- -deprecation
-
- 非推奨の警告メッセージを表示します。
-
- -encoding name
-
- ネイティブ・エンコーディング名(またはコード・ページ名)を指定して、コンパイラがASCIIキャラクタ・セット以外の文字を解釈する方法を制御できます。デフォルトでは、プラットフォームのデフォルトのネイティブ・エンコーディング・コンバータが使用されます。詳細は、「コンパイル用のネイティブ・エンコーディングの指定」を参照してください。
-
- 次に例を示します。
-
ojc -encoding SJIS JavaBean.java
-
- この場合、JavaBean.java、およびクラス・ファイルのない直接インポートしたJavaファイルがコンパイルされます。ソース・ファイルの文字は、日本語の場合すべてシフトJISキャラクタ・セットとして解釈されます。
-
- -exclude classname(s)
-
- ビルドから除外するクラス名を指定できます。コンパイラでは、指定したクラスのpublic static voidメソッドのコールがすべて無視されます。これは主に、正式版ビルドでコンパイルが必要なコードが含まれている非正式版アプリケーション・ビルドを診断する際に役立ちます。セミコロンで複数のクラスを区切るか、-excludeを複数回指定すると、複数のクラスを除外できます。たとえば、
-exclude p1;p2;p3 -exclude p4
と入力すると、p1、p2、p3、p4の4つのクラスが除外されます。
-
- 注意: このオプションは、JDeveloper IDE(「プロジェクト」->「プロジェクトの設定 - コンパイラ」)でもサポートされています。
-
- -excludeオプションの例:
-
-
// beginning of excludeTest.java
public class excludeTest
{
public static void main(String argv[])
{
diag.Trace("Application is about to start");
System.out.println("Test successful");
diag.Trace("Application is about to end");
}
}
class diag
{
static void Trace(String msg)
{
System.out.println(msg);
}
}
// end of excludeTest.java
- -excludeオプションを使用せずに前述のアプリケーションをコンパイルすると、次のように出力されます。
-
- Application is about to start
- Test successful
- Application is about to end
-
- 次の-excludeオプションを使用してコンパイルします。
-
ojc -exclude diag excludeTest.java
-
- 次のように出力されます。
-
- Test successful
-
- diag.Traceのコールはすべて無視されます。
-
- -extdirs pathlist
-
- クラスパスに追加するパスのセミコロンで区切られたリスト。各パスの
.jar
ファイルが追加されます。
-
- -g
-
- クラス・ファイルにデバッグ情報を生成します。プロジェクトでCodeCoachを使用する場合に必要なパラメータです。クラスのデバッグ中にローカル変数や他の情報にアクセスする場合にも必要です。
-
- -g:none
-
- クラス・ファイルにデバッグ情報を生成しないように指定します。
-
- -g:source,lines,vars,codecoach
-
- クラス・ファイルに選択的なデバッグ情報を生成します。
-
- -help
- -?
-
- OJCコンパイラのオプションを表示します。
-
- -make depfilename
-
- 依存性チェックに指定の依存性ファイルを使用します。指定したファイルが見つからない場合は作成されます。
-
- -noquiet
-
- コンパイルされているファイルの名前を表示します。
-
- -nowarn:#<id>
-
- 警告を表示せずにコンパイルします。任意の数の警告を抑止するように指定できます。引数を使用して指定すると、指定した警告を除くすべての警告が抑止されます。次に、いくつか例を示します。
-
- -nowarn:#486
未使用のimport文を抑止します。
-
- -nowarn:#487
一部使用のimport文を抑止します。
-nowarnと-warn:を組み合せることもできます。
- -nowarn -warn:#487
警告#487のみ出力します。
- -nowrite
-
- クラス・ファイルを出力せずにプログラムをコンパイルします。
-
- -obfuscate
-
- プログラムを曖昧化し、リバース・エンジニアリングの対象にならないようにします。曖昧化したコードを逆コンパイルすると、生成されるソース・コードには、プライベート・シンボルの変更されたシンボル名が含まれます。
-
- -p packagename
-
- 指定されたパッケージ名をコンパイルします。
-
- -rebuild
-
- 依存性に関係なく、指定されたファイルを再ビルドします。-makeオプションが使用されていないかぎり、再ビルドになります。
-
- -recurse [level]
-
- コンパイラに、ワイルド・カードを含むファイル名指定を展開する際、ディレクトリ内を再帰検索するように指定します。
-
- 次に例を示します。
-
ojc -recurse foo¥*java
-
- これは、次のように入力することと同じです。
-
ojc foo¥bar¥*java foo¥lish¥*java foo¥lish¥lee¥*java
-
- [level]オプションは、最大再帰レベルを指定するオプションの整数の引数です。
-
- 次に例を示します。
-
ojc -recurse 1 foo¥*java
-
- これは、次のように入力することと同じです。
-
ojc foo¥bar¥*java foo¥lish¥*java
-
foo¥lish¥lee¥*java
は、[level]変数の範囲内にありません。
-
- -s sourcefile
-
- 指定されたソース・ファイル名をコンパイルします。
-
- -source {1.3|1.4}
- デフォルトでは、ソースの互換性レベルはJ2SE 1.3です。ソース・コードでJ2SEアサーションを有効にするには、
-source 1.4
と入力します。 -
- -strictfp
-
- 中間浮動小数点計算に拡張精度を使用しないように指定します。
-
- -target [1.1|1.2|1.3|1.4]
-
- ターゲットが1.1に設定されている場合、OJCによりJSDK 1.1用にコンパイルされます。ターゲットが1.2に設定されている場合、Java 2(JSDK 1.2)用にコンパイルされます。ターゲットが1.3に設定されている場合、ojcによりJava 2 v1.3(J2SE 1.3)用にコンパイルされます。ターゲットが1.4に設定されている場合、Java 2 v1.4(J2SE 1.4)用にコンパイルされます。
-
- デフォルトのターゲットはJava 2(J2SE 1.3)です。
-
- -updateimports
-
- インポートしたクラス(ソースがソース・パスにある場合)を更新します。ZIPファイルまたはJARファイルからのクラスの場合は更新されません。デフォルトではこの設定です。
-
- -updateimports:class
-
- -updateimportsと同じ。
-
- -updateimports:jar
-
- ZIPファイルまたはJARファイルからのクラスも更新される点を除いて、-updateimportsと同じです。
-
- -updateimports:none
-
- インポートしたクラスを更新しません。
-
- -verbose
-
- どのクラス・ファイルがCLASSPATHのどこからロードされたかなど、コンパイルに関する詳細な情報を提供します。次の情報を取得できます。
- コンパイルされているソース・ファイル
- ロードされているクラス
- 生成されているクラス
- -verbosepath
-
- コンパイラで使用されるSOURCE PATHとCLASSPATHの値を表示します。
-
- -warn:#<id>
- 警告を指定できます。抑止する警告と組み合せて、任意の数の警告を指定できます。引数なしで使用すると、すべての警告が表示されます。有用な警告としては、次の2つがあります。
-
- -warn:#486
未使用のimport文を表示します。
-
- -warn:#487
一部未使用のimport文を表示します。
関連項目
Setvarsコマンドについて(Windows)
依存性チェックについて
コマンドラインまたはシェルからのコンパイルについて
Oracle Java Compilerとレスポンス・ファイル
デバッガで許容される有効なJava式の使用
デバッガで許容される有効なPL/SQL式の使用