3

次のコマンドで Java プログラムをコンパイルしています。

javac -cp ./classes/ src/com/oracle/tutorial/jdbc/JDBCTutorialUtilities.java

しかし皮肉なことに、結果のクラス ファイルは、クラスパスではなく同じソース フォルダーに作成されています。そのため、コンパイル後に毎回クラス ファイルを移動する必要があります。はい、ソースでパッケージを正しく指定しました。修正方法は?

4

3 に答える 3

4

使用する必要があります

javac -d ./classes/ src/com/oracle/tutorial/jdbc/JDBCTutorialUtilities.java

この-cpオプションはクラスパスを設定するためのものであり、出力ディレクトリを指定するためのものではありません。

adarsh$ javac -help
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath <path>          Specify where to find user class files and annotation processors
  -cp <path>                 Specify where to find user class files and annotation processors
  -sourcepath <path>         Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>       Override location of endorsed standards path
  -proc:{none,only}          Control whether annotation processing and/or compilation is done.
  -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process
  -processorpath <path>      Specify where to find annotation processors
  -d <directory>             Specify where to place generated class files
  -s <directory>             Specify where to place generated source files
  -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files
  -encoding <encoding>       Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release
  -target <release>          Generate class files for specific VM version
  -version                   Version information
  -help                      Print a synopsis of standard options
  -Akey[=value]              Options to pass to annotation processors
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system
  -Werror                    Terminate compilation if warnings occur
  @<filename>                Read options and filenames from file
于 2013-03-06T12:45:36.763 に答える
3

-d 引数を使用して、javac の出力フォルダーを指定できます。

詳細はこちら

于 2013-03-06T12:46:03.673 に答える
0

javacコマンドのオプションとして-dを使用します

-d directory クラスファイルの宛先ディレクトリを設定します。宛先ディレクトリはすでに存在している必要があります。javac は宛先ディレクトリを作成しません。

If **-d** is not specified, javac puts the class file in the same directory as the source file.

-dで指定されたディレクトリは、ユーザー クラス パスに自動的に追加されないことに注意してください。

于 2013-03-06T12:51:50.210 に答える