.
, являющаяся частью пути к классу компилятора, является результатом нескольких вещей, происходящих неявно.Чтобы иметь возможность компилировать, сгенерированные классы, на которые ссылаются другие классы, должны быть доступны через classpath.Таким образом, компилятор добавляет путь к файлу класса-файла к пути к классам.Если вы не предоставите ничего конкретного, этот каталог является исходным каталогом.Если вы не укажете, что конкретно используется рабочий каталог процесса, который по умолчанию .
.
Вызов javac -help
показывает различные возможные настройки:
"c:\Program Files\Java\jdk1.8.0_181\bin\javac.exe" -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
-parameters Generate metadata for reflection on method parameters
-d <directory> Specify where to place generated class files
-s <directory> Specify where to place generated source files
-h <directory> Specify where to place generated native header 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
-profile <profile> Check that API used is available in the specified profile
-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
я упомянул следующие варианты: -s
и -sourcepath
.-cp
используется для определения дополнительных мест (каталогов и файлов библиотеки), где компилятор может искать уже скомпилированные классы.Это также означает -cp
при вызове java
, поэтому между этими двумя исполняемыми файлами нет противоречий.