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 {@Overridepublic String getOccupation() {return "student";}
}

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

package com.thb.bian;import com.thb.Person;public class Teacher extends Person {@Overridepublic 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文件:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/145362.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Termux安装MySQL,通过内网穿透实现公网远程访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f516;系列专栏&#xff1a; C语言、Linux、Cpolar ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前…

【Matlab】三维绘图函数汇总

本文用于汇总 Matlab 中的三维绘图函数。plot3() 函数用于绘制用参数方程表示的三维曲线。ezplot3() 函数用于三维曲线的符号绘图&#xff0c;需要用参数方程表示。mesh() 函数用于绘制三维曲面网格。surf() 函数用于绘制三维空间曲面。 目录 1. plot3() 2. ezplot3() 3. me…

在配置文件“tsconfig.json”中找不到任何输入。指定的 “include“ 路径为“[“**/*“]”,“exclude“ 路径为[]

在vscode中项目下的tsconfig.json莫名报错 解决办法 在目录中随便创建一个后缀为.ts的文件 便不再报错

Studio One6.5安装源码教程

今天讲一下刚做的studio one6的安装源码教程。6.5万6.5的这个打包原码教程。整个原码是很简单的我们尽量把它精简到有十几行代码。 首先开始讲一下这个是安装设置部分。第一个是程序版本也可以自己改这个。第二个是6.5的。第三个是程序的安装路径&#xff0c;这里是不用设置的…

Python基础入门例程1-NP1 Hello World!

描述 将字符串 Hello World! 存储到变量str中&#xff0c;再使用print语句将其打印出来。 输入描述&#xff1a; 无 输出描述&#xff1a; 一行输出字符串Hello World! 解答&#xff1a; str "Hello World!" print(str) 解释说明&#xff1a; 赋值变量&…

计算机考研自命题(5)

1、C语言–求和 1、展开式求和。输入一个实数x&#xff0c;计算并输出下式的和&#xff0c;直到最后一项的绝对值小于0.00001.计算结果保留2位小数&#xff0c;试编程。 S x x/2&#xff01; x/3&#xff01; … /* 算法思想&#xff1a;定义一个求阶乘的函数fact(), 头文件调…

前端react入门day01-了解react和JSX基础

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 React介绍 React是什么 React的优势 React的市场情况 开发环境搭建 使用create-react-app快速搭建…

【TES605】基于Virtex-7 FPGA的高性能实时信号处理平台

板卡概述 TES605是一款基于Virtex-7 FPGA的高性能实时信号处理平台&#xff0c;该平台采用1片TI的KeyStone系列多核DSP TMS320C6678作为主处理单元&#xff0c;采用1片Xilinx的Virtex-7系列FPGA XC7VX690T作为协处理单元&#xff0c;具有2个FMC子卡接口&#xff0c;各个处理节…

数字IC前端学习笔记:门控时钟

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 门控时钟(clock gating)技术作为一种传统的动态低功耗技术被广泛应用于现在的数字集成电路设计中&#xff0c;这是RTL级别的低功耗优化技术。门控时钟即使用逻辑门…

粤嵌实训医疗项目day02(Vue + SpringBoot)

目录 一、创建vue项目并运行 二、vue-cli中的路由使用 三、element-ui框架、实现页面布局以及vue-路由 四、前端登录页面 五、user登录后端接口完善【后端】 六、user登录前端-请求工具-请求发起【前端】 七、请求的跨域-访问策略 八、完善项目的页面布局、导航菜单以及…

windows系统mysql服务启动失败

​ 原因 电脑重启navicat连接mysql失败&#xff0c;在电脑-管理-服务没有mysql服务 解决方案 找到mysql的安装目录进入bin目录 执行mysqld --install 进行重新安装 提示服务安装成功 net start mysql mysql 启动成功 ​

【IO】JavaIO流:字节流、字符流、缓冲流、转换流、序列化流等

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ IO流 Java IO1. 认识IO2. FileOutputStream(写…