java编译时指定classpath的实现方法

 更新时间:2023年10月23日 15:19:11   作者:听海边涛声  
在Java编程中,classpath是用于指定Java虚拟机在运行时查找类文件的路径,本文主要介绍了java编译时指定classpath的实现方法,具有一定的参考价值,感兴趣的可以了解一下

说明

  • Java编译时可以通过选项--class-path <path>,或者 -classpath <path>,或者-cp <path>来指定查找用户类文件、注释程序处理程序、或者源文件的位置。
  • 这个设置覆盖CLASSPATH环境变量的设置。
  • 如果没有设置-sourcepath,那么--class-path <path>,或者 -classpath <path>,或者-cp <path>指定的路径也会被用来查找源文件。
  • 如果没有设置-processorpath,那么--class-path <path>,或者 -classpath <path>,或者-cp <path>指定的路径也会被用来查找注解处理器。

注意:--class-path <path>,或者 -classpath <path>,或者-cp <path>指定的路径是指存放Java包的位置,里边不包含Java包的路径

举例

Java类的层次结构(后面几个例子用到)
例如java源文件的层次结构如下,其中com.thbcom.thb.bian是Java包名:

Person 类是一个父类:

package com.thb;

public class Person {

    public String getOccupation() {
        return "";
    }
}

Student 类是Person 类的子类,并且和Person 类在同一个包中:

package com.thb;

public class Student extends Person {

    @Override
    public String getOccupation() {
        return "student";
    }
}

Teacher 类是Person 类的子类,并且和Person 类不在同一个包中:

package com.thb.bian;

import com.thb.Person;

public class Teacher extends Person {

    @Override
    public String getOccupation() {
        return "teacher";
    }
}

不指定依赖的classpath,编译出错

现在不指定classpath,编译Teacher.java文件:

从上面输出可以看到,出错了,这是因为Teacher依赖于Person,找不到。

不指定classpath,编译Student.java文件,尽管和依赖的Person在同一个包中,也会出错:

指定依赖的classpath中含有包名,编译出错

下面用-classpath src\com\thb指定了依赖的路径,但是错误的,因为com/thb是包名的一部分,不应该包含在内:

指定了依赖的正确classpath,编译成功

下面用-classpath src指定了依赖的源文件Person.java的位置,编译成功

到输出目录下查看,Teacher.java文件和依赖的Person.java都被编译了:

同时编译被依赖的源文件,可以不指定依赖的classpath 在src/com/thb目录下有Person.java和Student.java文件,其中Student依赖于Person,现在全部编译该目录下的文件,不指定依赖的classpath编译成功:

到输出目录下查看,生成了正常的class文件:

在src/com/thb目录下有Person.java和Student.java文件,src/com/thb/bian目录下有Teacher.java文件,其中Student和Teacher都依赖于Person。在现在全部编译该目录下的文件,不指定依赖的classpath编译成功:

到输出目录下查看,生成了正常的class文件:

到此这篇关于java编译时指定classpath的实现方法的文章就介绍到这了,更多相关java编译时指定classpath内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • java大数乘法的简单实现 浮点数乘法运算

    java大数乘法的简单实现 浮点数乘法运算

    大数乘法可以进行任意大小和精度的整数和浮点数的乘法运算, 精确度很高, 可以用作经融等领域的计算,这个是我看了一些资料, 然后自己整理实现的,简单测试了一下
    2014-01-01
  • springcloud 熔断器Hystrix的具体使用

    springcloud 熔断器Hystrix的具体使用

    本篇文章主要介绍了springcloud 熔断器Hystrix的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • java数组排序示例分享

    java数组排序示例分享

    这篇文章主要介绍了java数组排序示例,需要的朋友可以参考下
    2014-03-03
  • Spring Security 中细化权限粒度的方法

    Spring Security 中细化权限粒度的方法

    这篇文章主要介绍了Spring Security 中细化权限粒度的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java实现ATM机操作系统

    Java实现ATM机操作系统

    这篇文章主要为大家详细介绍了Java实现ATM机操作系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 简单讲解Java的Socket网络编程的多播与广播实现

    简单讲解Java的Socket网络编程的多播与广播实现

    这篇文章主要介绍了Java的Socket网络编程的多播与广播实现,包括网络编程发送和接受数据的一些基础知识整理,需要的朋友可以参考下
    2016-01-01
  • java字符串如何只保留数字、字母、中文

    java字符串如何只保留数字、字母、中文

    这篇文章主要介绍了java字符串如何只保留数字、字母、中文问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • java.lang.IllegalStateException异常解决

    java.lang.IllegalStateException异常解决

    异常是程序在执行过程中遇到的错误或异常情况,本文就来介绍一下java.lang.IllegalStateException异常解决,感兴趣的可以了解一下
    2023-11-11
  • Java实现自定义Excel数据排序的方法详解

    Java实现自定义Excel数据排序的方法详解

    通常,我们可以在Excel中对指定列数据执行升序或者降序排序,在需要自定义排序情况下,我们也可以自行根据排序需要编辑数据排列顺序。本文将通过Java应用程序来实现如何自定义排序,需要的可以参考一下
    2022-09-09
  • Spring boot 默认静态资源路径与手动配置访问路径的方法

    Spring boot 默认静态资源路径与手动配置访问路径的方法

    这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05

最新评论