//编译多个文件 
 
 
 

   javac  path_of_file_a/a.java path_of_file_b/b.java path_of_file_c/c.java 
 
 
 

     
 
 
 

   -cp(classpath) 与 -sourcepath 的区别与联系: 
 
 
 

   当 -sourcepath 没有指定时,在 -cp 路径里面搜索 .class 和 .java 文件, 
 
 
 

   当 -sourcepath 指定时,只搜索 -cp 路径下的 .class 文件,即使 -cp 路径下有要找的 .java 文件也会不搜索这个文件, 
 
 
 

   而 -sourcepath 只搜索 .java 文件,不搜索 .class 文件。 
 
 
 

   因此应该避免用 -sourcepath ,而只用 -cp 来指定搜索 .class 和 .java 文件的路径。 
 
 
 

     
 
 
 

   而且还有一个要清楚的地方,-cp(classpath) 与 -sourcepath 是在 javac 解析 .java 文件里面的未知符号时搜索这个符号所在 .class 或者 .java 文件的路径,而不是从-cp(classpath) 与 -sourcepath  里面搜索传给javac 命令的参数里面的 .java 文件。 
 
 
 

   比如:C:\Users\xxNote\Desktop\test>javac x/a.java -cp y 
 
 
 

   这句的意思是编译 C:\Users\xxNote\Desktop\test\x\a.java ,如果 a.java 里面有未知的符号b, 那么从 C:\Users\xxNote\Desktop\test\y\ 路径下的 .class 或 .java 文件里面搜索,而不是从 C:\Users\xxNote\Desktop\test\y\ 路径下搜索 x\a.java  。 
 
 
 

     
 
 
 

   各个命令之间没有先后顺序,思考一下,javac是如何判断各个参数呢?当遇到参数结尾是 .java 的就知道是要编译的 java 文件,其他参数前都是 -xx 或者 @xx 这样就区分了。 
 
 
 

     
 
 
 

    >javac命令行参数 
  
 
  

    用法: javac <options> <source files> 
  
 
  

    其中, 可能的选项包括: 
  
 
  

      -g                         生成所有调试信息 
  
 
  

      -g:none                    不生成任何调试信息 
  
 
  

      -g:{lines,vars,source}     只生成某些调试信息 
  
 
  

      -nowarn                    不生成任何警告 
  
 
  

      -verbose                   输出有关编译器正在执行的操作的消息 
  
 
  

      -deprecation               输出使用已过时的 API 的源位置 
  
 
  

      -classpath <路径>            指定查找用户类文件和注释处理程序的位置 
  
 
  

      -cp <路径>                   指定查找用户类文件和注释处理程序的位置 
  
 
  

      -sourcepath <路径>           指定查找输入源文件的位置 
  
 
  

      -bootclasspath <路径>        覆盖引导类文件的位置 
  
 
  

      -extdirs <目录>              覆盖所安装扩展的位置 
  
 
  

      -endorseddirs <目录>         覆盖签名的标准路径的位置 
  
 
  

      -proc:{none,only}          控制是否执行注释处理和/或编译。 
  
 
  

      -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默 
  
 
  

    认的搜索进程 
  
 
  

      -processorpath <路径>        指定查找注释处理程序的位置 
  
 
  

      -parameters                生成元数据以用于方法参数的反射 
  
 
  

      -d <目录>                    指定放置生成的类文件的位置 
  
 
  

      -s <目录>                    指定放置生成的源文件的位置 
  
 
  

      -h <目录>                    指定放置生成的本机标头文件的位置 
  
 
  

      -implicit:{none,class}     指定是否为隐式引用文件生成类文件 
  
 
  

      -encoding <编码>             指定源文件使用的字符编码 
  
 
  

      -source <发行版>              提供与指定发行版的源兼容性 
  
 
  

      -target <发行版>              生成特定 VM 版本的类文件 
  
 
  

      -profile <配置文件>            请确保使用的 API 在指定的配置文件中可用 
  
 
  

      -version                   版本信息 
  
 
  

      -help                      输出标准选项的提要 
  
 
  

      -A关键字[=值]                  传递给注释处理程序的选项 
  
 
  

      -X                         输出非标准选项的提要 
  
 
  

      -J<标记>                     直接将 <标记> 传递给运行时系统 
  
 
  

      -Werror                    出现警告时终止编译 
  
 
  

      @<文件名>                     从文件读取选项和文件名