Java和Scala中关键字package指定的是源文件的存放路径吗?

news2024/9/21 16:44:52

无为也,则用天下而有余;有为也,则为天下用而不足🔬

目录

Scala代码演示
Java代码演示
总结

写在前面:

包(package)不是约定源文件存放的位置,而是约定源文件编译后生成的字节码文件存放的位置。

Java和Scala源文件中第一行package xxx.xxx.xxx可以和源文件路径不一样

scala代码演示:

1.在com.aaa.bbb目录下新建Scala_PackageTest源文件

在这里插入图片描述

在这里插入图片描述

第一行中package.com.aaa.bbb表示的含义是这个源文件经过编译后字节码文件存放的位置

2.编译,运行后,查看target目录下字节码存放路径:

在这里插入图片描述

3.源文件位置不变还在com.aaa.bbb将代码中的包路径修改成bbb2

在这里插入图片描述
重新编译运行,查看target目录下字节码存放路径:

在这里插入图片描述

所以说,源文件位置和package路径不一定说要一致,只不过是idea默认生成的一致,Java中也是!!!

Java代码演示:

1.在aaa.bbb路径下新建测试类
在这里插入图片描述
在这里插入图片描述
2.编译运行,查看target目录下字节码存放路径:

在这里插入图片描述

3.修改package包路径,idea报错。这是因为idea这个工具它要求源码路径和字节码路径要相同。其实Java是没有这个要求的。

在这里插入图片描述

4.将上述代码复制到记事本中,另存为Java_PackageTest.java文件。

在这里插入图片描述

在这里插入图片描述

5.在cmd中编译,执行。

在这里插入图片描述

在这里插入图片描述

6.分析原因:

字节码文件生成了,为啥会报错呢?

这是因为,在java这个命令执行的时候会把Java_PackageTest.class这个字节码文件加载到jvm虚拟机里面去,这个时候就会找这个字节码文件在什么位置,他是通过classpath这个环境变量来找的,在jdk1.6之后不需要配置,他有个默认值是.也就是代表当前路径,总的来说就是,执行java Java_PackageTest他会在当前目录下面找字节码文件。

当前目录下有字节码文件啊,为啥还执行不了呢?

注意了,这个字节码文件可不应该在当前目录下,我们在代码中写了,字节码文件应该存放的包路径,所以他会在那个包路径中去找,找不到,所以就报错了。

7.我们可以在当前路径下带包编译。javac -d . Java_PackageTest.java,让它自动生成包结构。

在这里插入图片描述
在这里插入图片描述

8.带包名执行成功。

在这里插入图片描述

总结:

所以说在Java和Scala中 package指的是编译后的字节码文件的存放位置,不一定要和源文件的存放位置一样,只不过在idea工具中要求Java的字节码文件存放位置和源文件存放位置要相同罢了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据挖掘,计算机网络、操作系统刷题笔记37

数据挖掘,计算机网络、操作系统刷题笔记37 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,orac…

Scanpy 单细胞测序基因分析

参考:https://www.bilibili.com/video/BV1sq4y1C7Qx/ https://scanpy-tutorials.readthedocs.io/en/latest/pbmc3k.html 代码下载:scanpy分析scRNA-seq数据基本流程(含scanpy seurat两大工具对比) 链接: https://pan.baidu.com/s…

SCSS函数——Map

SCSS函数——MapSCSS函数——MapMap的简单声明Map取值遍历Map获取值实现换肤效果1. 设置用户可以选择的主题2.创建主题需要颜色的Map集合3.在使用SCSS文件中导入函数和Scss文件4.构建一个themeCombine函数动态创建类名5.使用each对变量进行遍历Map函数1.get()取值函数2.deep-re…

STM32F10x数据手册之GPIO手册记录

前言 1、本文根据数据手册进行记录 2、由于手册的逻辑结构是呈现为总体到具体的结构,导致查看的时候不方便,所以在此记录,方便回顾 GPIO–输入模式 对比分析: 1、在此模式下,向GPIO口,输出高低电平是无效的。 2、GPIO初始电平与…

PHP反序列化新手入门学习总结

最近写了点反序列化的题,才疏学浅,希望对CTF新手有所帮助,有啥错误还请大师傅们批评指正。 php反序列化简单理解 首先我们需要理解什么是序列化,什么是反序列化? PHP序列化:serialize() 序列化是将变量…

DW 2023年1月Free Excel 第八次打卡 Excel数据可视化

第八章Excel数据可视化 数据下载地址与参考链接:https://d9ty988ekq.feishu.cn/docx/Wdqld1mVroyTJmxicTTcrfXYnDd 1 条形图 案例1 打开data/chap8/8.1xlsx中的【案例1】,现在有湖北区2022/01/01的不同商品的销售额。 问题1:如何更加直观…

Java基础11:正则表达式

Java基础11:正则表达式一、匹配规则1. 字符类(只匹配一个字符)2. 预定义字符(只匹配一个字符)3. 数量词二、Pattern三、Matcher四、在字符串方法中的使用1. matches2. replaceAll3. split五、 PatternMatcher示例1. 爬…

【自然语言处理】主题建模:基于 LDA 实现

主题建模:基于 LDA 实现主题建模是一种常见的自然语言处理任务。隐含的狄利克雷分布(Latent Dirichlet Allocation,LDA)是其中一种实现算法,其核心思想如下图所示。 主题建模的方法也比较多,除了本文提到的…

MySQL架构概述

MySQL架构 对MySQL服务端架构的概述,包括逻辑架构、并发控制、事务和MVCC(多版本并发控制)等内容。 逻辑架构 连接/线程管理 最上层负责与客户端交互,包括连接处理、身份验证、确保安全性等。 解析器、优化器 MySQL核心能力都在…

机器学习从入门到进阶所需学习资料-包括书、视频、源码

本文整理了一些入门到进阶机器学习所需要的一些免费的精品视频课程,一些优质的书籍和经典的代码实战项目。本文整理自网络,源地址:https://github.com/linxid/Machine_Learning_Study_Path视频1.1 吴恩达老师机器学习课程:•Cours…

【【黑马SpringCloud(2)】微服务调用

服务调用和网关Feign远程调用Feign自定义配置Feign性能优化使用连接池代替默认的URLConnection解决重复代码继承方式抽取方式Gateway服务网关gateway快速入门断言过滤器全局过滤器过滤器执行顺序:跨域问题Feign远程调用 RestTemplate发起远程调用的代码&#xff1a…

走进 CSS

看完本篇博客,你能收获: 👉 了解 CSS 是什么?👉 学会 CSS 怎么用?👉 CSS的选择器👉 如何用 CSS 美化网页 文章目录01 CSS 是什么?02 CSS的发展史03 CSS 快速入门04 CSS的…

唯一索引范围查询锁 bug修复了

唯一索引范围查询锁 bug修复了 其他资料介绍入下: session A 是一个范围查询,按照原则 1 的话,应该是索引 id 上只加 (10,15] 这个 next-key lock ,并且因 为 id 是唯一键,所以循环判断到 id15 这一行就应该停止了。…

生成标题的节点

生成标题的节点目录概述需求:设计思路实现思路分析1.mine 的概述2 mi是否自动计算未来的处理人参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,w…

智能驾驶 车牌检测和识别(一)《CCPD车牌数据集》

智能驾驶 车牌检测和识别(一)《CCPD车牌数据集》 目录 智能驾驶 车牌检测和识别(一)《CCPD车牌数据集》 1. 前言 2.车牌号码说明 3.车牌数据集CCPD (1)车牌数据集CCPD说明 (2&#xff09…

Eclipse调试python

Eclipse调试pythonF5:Step Into 单步调试,跳入函数内部F6:Step Over 单步调试,不跳入函数内部,执行当前代码F7:Step Return 返回到当前函数的尾部,跳转到调用函数的位置F8:Resume 跳…

DDOS渗透与攻防(二)之SYN-Flood攻击

系列文章 DDOS渗透与攻防(一)之拒绝服务攻击概念介绍 SYN-Flood攻击 1.SYN-Flood拒绝服务攻击 (1).攻击协议原理介绍说明_Syn-Flood SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应…

8 种异步实现方式,性能炸裂!

异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:发送短信、邮件、异步更新等,这些都是典型的可以通过异步实…

LeetCode动态规划经典题目(九):0-1背包问题

学习目标: 0-1背包问题 学习内容: 9. LeetCode416. 分割等和子集https://leetcode.cn/problems/partition-equal-subset-sum/ 10. LeetCode1049. 最后一块石头的重量 IIhttps://leetcode.cn/problems/last-stone-weight-ii/ 学习产出: 独…

Makefile学习⑦:编译动态链接库和静态库

Makefile学习⑦:编译动态库和静态库 编译链接动态库 动态链接库名词解释: 动态:运行时才去加载,动态加载 链接:指库文件和二进制程序分离,用某种特殊手段维护两者之间的关系 库 :库文件&#…