Oracle Java Compilerの起動

コマンドラインからOracle Java Compiler(OJC)を起動するには、次のようにします。

コマンドライン・オプション

-classpath path
 
クラスの検索に使用するパス。デフォルトのCLASSPATHまたはCLASSPATH環境変数より優先されます。ディレクトリはセミコロンで区切ります。たとえば、クラス名がmyclasses、ファイル名がfoo.javaであるとします。
 
ojc -classpath c:\mydir;c:\jdeveloper \myclasses foo.java(Windows)
ojc -classpath ~/mydir;/usr/jdeveloper /myclasses foo.java(Unix)
 
Java 2プラットフォームを使用している場合(デフォルトのターゲットはJDK 1.4)、CLASSPATHの前にSYSTEMCLASSPATHが追加されます。前述の例では、SYSTEMCLASSPATHは次のようになります。
 
Windows
%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
 
Unix
$JAVA_HOME/lib/rt.jar;
$JAVA_HOME/lib/i18n.jar;
$JAVA_HOME/lib/sunrsasign.jar;
$JAVA_HOME/lib/jsse.jar;
$JAVA_HOME/lib/jce.jar;
$JAVA_HOME/lib/charsets.jar;
$JAVA_HOME/lib/classes;
~/mydir;
/usr/ jdeveloper/myclasses
 
JAVAHOMEが定義されていない場合は、jdev.conf内のSetJavaHomeで定義されたJDKが使用されます。JAVAHOMEが存在しない場合は、<jdev_install>/jdkにJDKが存在すれば、これが使用されます。
 
ターゲットJDKが1.1(-target 1.1を使用)の場合、CLASSPATHSYSTEMCLASSPATHが追加されます。前述の例では、次のようになります。
 
Windows
c:\mydir;
c:\jdeveloper\myclasses
%JAVAHOME%\lib\classes.zip;
%JAVAHOME%\classes
 
Unix
~/mydir;
~/usr/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(Windows)
ojc -d ~/usr/jdeveloper/myclasses JavaBean.java (Unix)
 
この場合、JavaBean.javaに、MyPackageというパッケージ文が含まれていると仮定すると、JavaBean.javaソース・ファイルで定義されたクラスのclassファイルは、C:\JDeveloper\myclasses\MyPackageディレクトリに保存されます。
 
Javaファイルは、SOURCEPATHから読み取られ、クラス・ファイルはCLASSPATHディレクトリに書き込まれます。宛先ディレクトリは、CLASSPATHに含まれる場合もあります。デフォルトの宛先は、ソース・ファイルのパッケージ構造と一致し、ソースのルート・ディレクトリから始まります。
 
-deprecation:self
 
deprecation: 非推奨の警告メッセージを表示します。
 
:self: 現在コンパイルされているソースで検出された非推奨の警告メッセージを表示します。
 
-encoding name
 
ネイティブ・エンコーディング名(またはコード・ページ名)を指定して、コンパイラがASCIIキャラクタ・セット以外の文字を解釈する方法を制御できます。デフォルトでは、プラットフォームのデフォルトのネイティブ・エンコーディング・コンバータが使用されます。詳細は、「コンパイル用のネイティブ・エンコーディングの指定」を参照してください。
 
次に例を示します。
 
ojc -encoding SJIS JavaBean.java
 
この場合、JavaBean.java、およびクラス・ファイルのない直接インポートしたJavaファイルがコンパイルされます。ソース・ファイルの文字は、日本語の場合すべてシフトJISキャラクタ・セットとして解釈されます。
 
 
-endorseddirs pathlist
 
Sun社がJDK 1.4.1で提供する、デフォルト推奨規格のJDKクラスjava.endorsed.dirsのデフォルト値をオーバーライドできます。pathlistでは、パス名をセミコロンで区切ります。
 
java.endorsed.dirsの詳細は、java.sun.comで『Endorsed Standards Override Mechanism』を参照してください。
 
-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
--help
-?
 
OJCコンパイラのオプションを表示します。
 
-make depfilename
 
依存性チェックに指定の依存性ファイルを使用します。指定したファイルが見つからない場合は作成されます。
 
-msglimit:#
 
出力に書き込まれるエラーおよび警告の最大数です。無制限にするには、-1を使用します。デフォルトは1000です。
 
-noquiet
 
コンパイルされているファイルの名前を表示します。
 
-nowarn:#<id>
 
警告を表示せずにコンパイルします。任意の数の警告を抑止するように指定できます。引数を使用して指定すると、指定した警告を除くすべての警告が抑止されます。次に、いくつか例を示します。
 
-nowarn:#486
未使用のimport文を抑止します。
 
-nowarn:#487
一部使用のimport文を抑止します。

-nowarn-warn:を組み合せることもできます。

-nowarn -warn:#487

警告#487のみ出力します。
-nowrite
 
クラス・ファイルを出力せずにプログラムをコンパイルします。
 
-obfuscate
 
プログラムを曖昧化し、リバース・エンジニアリングの対象にならないようにします。曖昧化したコードを逆コンパイルすると、生成されるソース・コードには、プライベート・シンボルの変更されたシンボル名が含まれます。
 
-p packagename
 
指定されたパッケージ名をコンパイルします。
 
-prompt
 
各構文エラーの後に、継続するか中止するかを確認します。
 
-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アサーションが有効になります。ソースの互換性レベルをJ2SE 1.4にするには、-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)用にコンパイルされます。
 
デフォルトのターゲットは、Sun社のjavacのデフォルトと一致するJava 2(J2SE 1.2)です。
 
-updateimports
 
インポートしたクラス(ソースがソース・パスにある場合)を更新します。ZIPファイルまたはJARファイルからのクラスの場合は更新されません。デフォルトではこの設定です。
 
-updateimports:class
 
-updateimportsと同じ。
 
-updateimports:jar
 
ZIPファイルまたはJARファイルからのクラスも更新される点を除いて、-updateimportsと同じです。
 
-updateimports:none
 
インポートしたクラスを更新しません。
 
-verbose
 
どのクラス・ファイルがCLASSPATHのどこからロードされたかなど、コンパイルに関する詳細な情報を提供します。次の情報を取得できます。
-verbosepath
 
コンパイラで使用されるSOURCE PATHCLASSPATHの値を表示します。
 
-warn:#<id>
警告を指定できます。抑止する警告と組み合せて、任意の数の警告を指定できます。引数なしで使用すると、すべての警告が表示されます。有用な警告としては、次の2つがあります。
 
-warn:#486
未使用のimport文を表示します。
 
-warn:#487
一部未使用のimport文を表示します。
 
-warningtag tag[, tag]
 
javadocのコメント・タグのリスト。リストされたタグがソースのコメント内に出現した場合に、警告を出力します。タグ名はカンマを使用して区切ります。

関連項目

Setvarsコマンドについて(Windows)
依存性チェックについて
コマンドラインまたはシェルからのコンパイルについて
Oracle Java Compilerとレスポンス・ファイル
デバッガでの有効なJava式の使用方法