//编译多个文件
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                    出现警告时终止编译
  @<文件名>                     从文件读取选项和文件名

javac编译多个java文件以及-cp、-classp、-sourcepath的更多相关文章

  1. 在linux命令行中编译和运行java文件

    同时加载编译多个jar包和java文件 在个人平常使用或者当我们把代码部署到linux服务器上的时候,我们经常需要通过命令行编译和运行java文件,网上关于这个的方法大多是通过 javac -cp f ...

  2. 如何使用命令行编译以及运行java文件

    要想编译和运行java文件,很简单,只需要两个命令: (1) javac:作用:编译java文件:使用方法: javac Hello.java ,如果不出错的话,在与Hello.java 同一目录下会 ...

  3. 如何使用命令行编译和运行java文件

    相信大家现在一般都在使用IDE环境来开发运行java文件,但我觉得可以在命令行里面简单运行java文件,技多不压身. 接下来我来说一下编译和运行java文件: 第一步,首先下一个入门程序(注意:一定要 ...

  4. 命令行编译多个java文件

    如何使用命令行编译多个java文件 文件结构: method 1 cd javaproject javac -sourcepath javapath -d classpath javapath/*.j ...

  5. 加载依赖的jar包在命令行编译和运行java文件

    在命令里编译和执行java文件,当应用程序需要需要依赖的jar包里面的class文件才能编译运行的时候,应该这样做: 1. 首先是编译过程,在命令行里面执行: (1) javac -classpath ...

  6. java-cmd-命令行编译和运行java文件

    一.使用的工具 1.javac 2.java 二.命令 项目目录只这样的 D:/project/src/com/example/Child.java D:/project/src/com/exampl ...

  7. 编译和运行java文件 找不到或无法加载主类

    这边提供一个关于程序中含有package关键字,使用“终端”运行程序时出现“找不到或无法加载主类”,而使用Eclipse软件可以正常运行程序的可能解决办法. 例如程序名为HelloWorldTest. ...

  8. javac 编译源文件出现"java:1: 需要为 class、interface 或 enum"、" [javac] 锘縫"错误

    [javac] HelloWorld.java:1: 需要为 class.interface 或 enum [javac] 锘縫ackage com.csdn.demo; [javac] ^ [jav ...

  9. Mac与Widow下编译与运行java文件引入多个外部jar包

    记录下,以后万一用得着呢 1.MAC环境下: 前提:在终端跳转到当前的源文件目录(cd xx), 并且配置好jdk,这里面不是重点 编译命令:注意连接用  :  号 javac -cp commons ...

随机推荐

  1. 所有eclipse版本,主题黑化,代码黑化的简单两步

    一.下载两个文件 二.打开eclipse,Import   .epf文件 三.把.jar 复制到 eclipse的plugins目录下,重启eclipse 效果如下: 注 以上方法:来自互联网

  2. js斐波拉切

    如下: //1 1 2 3 5 8 13 21...//斐波拉切 function fei(n){ if(n==1 || n==2){ return 1 }else{ return fei(n-1)+ ...

  3. selenium跳过webdriver检测并爬取淘宝我已购买的宝贝数据

    简介 上一个博文已经讲述了如何使用selenium跳过webdriver检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文. 源代码 # -*- coding: utf-8 ...

  4. this.$router.push、replace、go的区别

    1.this.$router.push() 描述:跳转到不同的url,但这个方法会向history栈添加一个记录,点击后退会返回到上一个页面. 用法: 2.this.$router.replace() ...

  5. Sass 笔记

    Sass 笔记 1. 安装,依赖Ruby sass依赖Ruby, 所以Windows要先安装Ruby, Mac自带无需安装 $ gem install sass 2. 两种文件格式 sass scss ...

  6. 定时任务调度工作(学习记录 四)schedule与scheduleAtFixedRate的区别

    根据两种情况来看区别 一.首次计划执行的时间早于当前的时间 1.schedule方法 “fixed-delay”:如果第一次执行时间被延迟了,随后的执行时间按照上一次实际执行完成的时间点进行计算 演示 ...

  7. Spring Boot 2.x 编写 RESTful API (二) 校验

    用Spring Boot编写RESTful API 学习笔记 约束规则对子类依旧有效 groups 参数 每个约束用注解都有一个 groups 参数 可接收多个 class 类型 (必须是接口) 不声 ...

  8. 第一章 Python基本语法元素

    1.1   程序设计基本方法 计算机的概念: (1)功能性:对数据的操作,表现为数据计算.输出输出处理和结果存储等 (2)可编程性:根据一系列指令自动地.可预测地.准确地完成操作者的意图. 计算机的发 ...

  9. odoo 配置文件参数大全

    odoo 数据库配置文件参数 [options] ; addons模块的查找路径 addons_path = E:\GreenOdoo8.0\source\openerp\addons ; 管理员主控 ...

  10. vivado2016.1下载程序出错:End of startup status: LOW

    现象 使用JTAG下载程序,发现刚开始下载就出现了End of startup status: LOW错误.但能检测到芯片,证明JTAG没烧毁. 流程 前几次下载都没有问题,然后就有问题了. (1)怀 ...