• java编译时的sourcepath选项


    说明

    • Java编译时可以通过选项–source-path ,或者-sourcepath 来指定类或者接口的定义。

    注意:指定的路径是指存放Java包的位置,里边不包含Java包的路径。

    举例

    Java类的层次结构(后面几个例子用到)
    例如java源文件的层次结构如下,其中com.thb是Java包名:
    在这里插入图片描述

    Person 是父类:

    package com.thb;
    
    public class Person {
    
        public String getOccupation() {
            return "";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    Student 是Person 的子类:

    package com.thb;
    
    public class Student extends Person {
    
        @Override
        public String getOccupation() {
            return "student";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    既不指定classpath,也不指定sourcepath,编译出错

    因为Student依赖Person,没有指明到哪边寻找Person的定义,编译出错:
    在这里插入图片描述

    指定的sourcepath中含有包名,编译出错

    下面用-sourcepath src\com\thb指定了源文件Person.java的搜索路径,但是错误的,因为com/thb是包名的一部分,不应该包含在内:
    在这里插入图片描述

    指定了正确的sourcepath,编译成功

    下面用-sourcepathsrc指定了源文件Person.java的位置,编译成功:
    在这里插入图片描述
    到输出目录查看,生成了正常的class文件:
    在这里插入图片描述

    同时编译被依赖的源文件,可以不指定sourcepath

    在src/com/thb目录下有Person.java和Student.java文件,其中Student依赖于Person,现在全部编译该目录下的文件,不指定sourcepath编译成功:
    在这里插入图片描述

    到输出目录查看,生成了正常的class文件:
    在这里插入图片描述

  • 相关阅读:
    简单几步让你的远程桌面更安全
    Linux--inode
    Dataframe型数据分析技巧汇总
    【PTHREAD】线程状态
    npm报错
    【golang/问题记录】goroutine之间数据竞争问题
    el table 修改鼠标在行上改变背景颜色
    虚拟内存和页表
    PyTorch C++ 前端:张量
    SpringBoot日期参数设置和Json序列化日期设置
  • 原文地址:https://blog.csdn.net/panghuangang/article/details/133989797