-3

次のディレクトリ構造があるとします。

bigProject
|--source
| |--Utils.java
|
|--classes
|--

そして、次のコマンド ライン呼び出し: javac -d classes source/Utils.java 現在のディレクトリが bigProject であると仮定すると、結果はどうなるでしょうか。

A. If the compile is successful, Utils.class is added to the source directory.
B. The compiler returns an invalid flag error.
C. If the compile is successful, Utils.class is added to the classes directory.
D. If the compile is successful, Utils.class is added to the bigProject directory.

答え:C

答えが C である理由を誰か説明してもらえますか?

4

2 に答える 2

2

-d classesコマンド ライン スイッチは、コンパイルされたコードをclassesフォルダーに格納するようにコンパイラーに指示します。

javac のドキュメントを参照してください。

-d ディレクトリ

クラス ファイルの宛先ディレクトリを設定します。宛先ディレクトリはすでに存在している必要があります。javac は宛先ディレクトリを作成しません。クラスがパッケージの一部である場合、javac はパッケージ名を反映するサブディレクトリにクラス ファイルを配置し、必要に応じてディレクトリを作成します。たとえば、-d /home/myclasses を指定し、クラスの名前が com.mypackage.MyClass の場合、クラス ファイルの名前は /home/myclasses/com/mypackage/MyClass.class になります。

-d が指定されていない場合、javac はクラス ファイルをソース ファイルと同じディレクトリに置きます。

于 2013-07-14T17:00:25.360 に答える
1

引数なしで実行するjavacと、ヘルプ コンテンツが表示されます

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

そして-d言う -d <directory> Specify where to place generated class files

于 2013-07-14T17:03:28.537 に答える