JAVA_SE基础——56.包的创建

接下来我来给大家讲下……包 ,

先看一段代码

class Demo1{
	public static void main(String[] args) {
		System.out.println("这个是Demo1的main方法");
	}
}
然后再新建一个Java文件,然后类名也叫Demo1,但是文件名叫Demo2

class Demo1 {
	public static void main(String[] args) {
		System.out.println("这个是Demo2的main方法");
	}
}

如果我先编译Demo1 再编译Demo2  然后运行Demo1   结果会是什么?  会输出:这个是Demo1的main方法 呢, 还是会输出:这个是Demo2的main方法。

运行结果:

这个是Demo2的main方法


大家有没有想过为什么???

因为,后编译的这个文件 是不是也会产生Demo1.class的这个文件   后编译的会把前面编译的覆盖掉


包:就可以解决类名重复这个问题了。

包的作用:

1.解决类名重复产生冲突的问题。

2.便于软件版本的发布。

包的概念:

windows一个文件夹中 是不是不可以出现两个一样名字的文件,那在windows中又是如何解决的?那就是创建文件夹,所以java中的包就相当于windows文件夹。


定义包的格式:

package 包名;


包语句要注意的事项:
1. package语句必须位于java文件中中第一个语句。
2. 如果一个类加上了包语句,那么该类的完整类名就是: 包名.类名
3. 一个java文件只能有一个包语句。


下面来段代码创建个包试试:

package a;

class Demo1 
{
	
	public static void main(String[] args) 
	{
		System.out.println("这个是Demo1的main方法...");
	}
}
然后编译,结果如下图:


这提示什么意思?  异常:NoClassDefFoundError;   找不到类名的意思


大家看包语句要注意的事项的第二点。那这个类完整类名就是:a.Demo1

先创建一个叫做a的文件夹,把Demo1.class 拖进去,


然后运行


新建文件夹的方法是不是觉得很烦,那我继续说另外一种方法~

javac -d 指定类文件的存放路径   java源文件

或者 javac -d . java源文件    (.的意思是当前文件夹路径,,就是Demo1的路径)



交流企鹅:654249738,和自学者交流群:517284938


[root@yfw ~]# cd /opt/openfire/enterprise/spark [root@yfw spark]# ls -l /opt/openfire/enterprise/spark/Spark/ 总用量 68 drwxr-xr-x 2 root root 4096 4月 1 2023 bin drwxr-xr-x 4 root root 4096 4月 1 2023 documentation drwxr-xr-x 4 root root 4096 4月 1 2023 lib drwxr-xr-x 2 root root 4096 10月 30 14:07 logs drwxr-xr-x 2 root root 4096 4月 1 2023 plugins drwxr-xr-x 3 root root 4096 4月 1 2023 resources drwxr-xr-x 2 root root 4096 10月 30 14:04 security -rwxr-xr-x 1 root root 15294 4月 1 2023 Spark -rw-r--r-- 1 root root 20 10月 30 14:04 spark.log -rwxr-xr-x 1 root root 14336 4月 1 2023 starter drwxr-xr-x 3 root root 4096 4月 1 2023 xtra [root@yfw spark]# find /opt/openfire/enterprise/spark -name "*.tar.gz" -o -name "*.zip" /opt/openfire/enterprise/spark/Spark/xtra/emoticons/sparkEmoticonSet.zip /opt/openfire/enterprise/spark/Spark/xtra/emoticons/GTalk.AdiumEmoticonset.zip /opt/openfire/enterprise/spark/Spark/xtra/emoticons/Default.adiumemoticonset.zip /opt/openfire/enterprise/spark/Spark/xtra/emoticons/POPO.adiumemoticonset.zip /opt/openfire/enterprise/spark/spark_3_0_2.tar.gz [root@yfw spark]# cd /opt/openfire/enterprise/spark [root@yfw spark]# mv Spark Spark.bak [root@yfw spark]# mkdir Spark [root@yfw spark]# tar -tzf spark_3_0_2.tar.gz | head -10 Spark/ Spark/.install4j/ Spark/.install4j/MessagesDefault Spark/.install4j/build.uuid Spark/.install4j/i4j_extf_0_3wlfya.utf8 Spark/.install4j/i4j_extf_10_3wlfya.utf8 Spark/.install4j/i4j_extf_11_3wlfya.utf8 Spark/.install4j/i4j_extf_12_3wlfya.utf8 Spark/.install4j/i4j_extf_13_3wlfya.utf8 Spark/.install4j/i4j_extf_14_3wlfya.utf8 [root@yfw spark]# tar -xzf spark_3_0_2.tar.gz -C Spark --strip-components=1 [root@yfw spark]# ls -l /opt/openfire/enterprise/spark/Spark/ 总用量 56 drwxr-xr-x 2 root root 4096 4月 1 2023 bin drwxr-xr-x 4 root root 4096 4月 1 2023 documentation drwxr-xr-x 4 root root 4096 4月 1 2023 lib drwxr-xr-x 2 root root 4096 4月 1 2023 plugins drwxr-xr-x 3 root root 4096 4月 1 2023 resources -rwxr-xr-x 1 root root 15294 4月 1 2023 Spark -rwxr-xr-x 1 root root 14336 4月 1 2023 starter drwxr-xr-x 3 root root 4096 4月 1 2023 xtra 损坏或格式不兼容" tar -tzf spark_3_0_2.tar.gz > /dev/null && echo "✅ 压缩可正常读取" || echo "❌ 压缩损 ✅ 压缩可正常读取 [root@yfw spark]# ls -lh /opt/openfire/enterprise/spark/spark_3_0_2.tar.gz -rw-r--r-- 1 openfire openfire 59M 10月 28 15:11 /opt/openfire/enterprise/spark/spark_3_0_2.tar.gz [root@yfw spark]# tar -tzf spark_3_0_2.tar.gz | grep -E '/(\.install4j|Spark\.jar)' Spark/.install4j/ Spark/.install4j/MessagesDefault Spark/.install4j/build.uuid Spark/.install4j/i4j_extf_0_3wlfya.utf8 Spark/.install4j/i4j_extf_10_3wlfya.utf8 Spark/.install4j/i4j_extf_11_3wlfya.utf8 Spark/.install4j/i4j_extf_12_3wlfya.utf8 Spark/.install4j/i4j_extf_13_3wlfya.utf8 Spark/.install4j/i4j_extf_14_3wlfya.utf8 Spark/.install4j/i4j_extf_15_3wlfya.utf8 Spark/.install4j/i4j_extf_16_3wlfya.utf8 Spark/.install4j/i4j_extf_17_3wlfya.utf8 Spark/.install4j/i4j_extf_18_3wlfya_bndrky.png Spark/.install4j/i4j_extf_19_3wlfya_y3ga2s.png Spark/.install4j/i4j_extf_1_3wlfya.utf8 Spark/.install4j/i4j_extf_20_3wlfya_18gg8kx.png Spark/.install4j/i4j_extf_20_3wlfya_18gg8kx@2x.png Spark/.install4j/i4j_extf_20_3wlfya_18gg8kx@2x_dark.png Spark/.install4j/i4j_extf_20_3wlfya_18gg8kx_dark.png Spark/.install4j/i4j_extf_21_3wlfya_1mofcyi.png Spark/.install4j/i4j_extf_2_3wlfya.utf8 Spark/.install4j/i4j_extf_3_3wlfya.utf8 Spark/.install4j/i4j_extf_4_3wlfya.utf8 Spark/.install4j/i4j_extf_5_3wlfya.utf8 Spark/.install4j/i4j_extf_6_3wlfya.utf8 Spark/.install4j/i4j_extf_7_3wlfya.utf8 Spark/.install4j/i4j_extf_8_3wlfya.utf8 Spark/.install4j/i4j_extf_9_3wlfya.utf8 Spark/.install4j/i4jempty.ttf Spark/.install4j/i4jparams.conf Spark/.install4j/i4jruntime.jar Spark/.install4j/launcher4042238b.jar Spark/.install4j/launcher5cd2e029.jar Spark/.install4j/libi4jinst.dylib Spark/.install4j/libi4jinst2.dylib [root@yfw spark]# cd /opt/openfire/enterprise/spark [root@yfw spark]# [root@yfw spark]# # 备份可疑 [root@yfw spark]# mv spark_3_0_2.tar.gz spark_3_0_2.tar.gz.bad.bak [root@yfw spark]# [root@yfw spark]# # 下载真实官方构建(来自 Ignite Realtime GitHub 发布页) [root@yfw spark]# wget https://github.com/igniterealtime/Spark/releases/download/v3.0.2/spark_3_0_2.tar.gz --2025-10-30 14:28:50-- https://github.com/igniterealtime/Spark/releases/download/v3.0.2/spark_3_0_2.tar.gz 正在解析机 github.com (github.com)... 20.205.243.166 正在连接 github.com (github.com)|20.205.243.166|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 302 Found 位置:https://release-assets.githubusercontent.com/github-production-release-asset/14648981/c8497e28-ebd4-4c21-8f1f-3a4ceee88ba5?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-10-30T07%3A15%3A44Z&rscd=attachment%3B+filename%3Dspark_3_0_2.tar.gz&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2025-10-30T06%3A15%3A34Z&ske=2025-10-30T07%3A15%3A44Z&sks=b&skv=2018-11-09&sig=F8MgFLG072dmmMIHGlJV6JjEuG%2FYadEJA1XXmbBVrCc%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc2MTgwNzUzMSwibmJmIjoxNzYxODA1NzMxLCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.1co59rcGqrSLoX7vveJUOl2Mon4DllIOm3Ef-xUaU7s&response-content-disposition=attachment%3B%20filename%3Dspark_3_0_2.tar.gz&response-content-type=application%2Foctet-stream [跟随至新的 URL] --2025-10-30 14:28:51-- https://release-assets.githubusercontent.com/github-production-release-asset/14648981/c8497e28-ebd4-4c21-8f1f-3a4ceee88ba5?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-10-30T07%3A15%3A44Z&rscd=attachment%3B+filename%3Dspark_3_0_2.tar.gz&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2025-10-30T06%3A15%3A34Z&ske=2025-10-30T07%3A15%3A44Z&sks=b&skv=2018-11-09&sig=F8MgFLG072dmmMIHGlJV6JjEuG%2FYadEJA1XXmbBVrCc%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc2MTgwNzUzMSwibmJmIjoxNzYxODA1NzMxLCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.1co59rcGqrSLoX7vveJUOl2Mon4DllIOm3Ef-xUaU7s&response-content-disposition=attachment%3B%20filename%3Dspark_3_0_2.tar.gz&response-content-type=application%2Foctet-stream 正在解析机 release-assets.githubusercontent.com (release-assets.githubusercontent.com)... 185.199.109.133, 185.199.111.133, 185.199.108.133, ... 正在连接 release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.109.133|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:61236078 (58M) [application/octet-stream] 正在保存至: “spark_3_0_2.tar.gz” spark_3_0_2.tar.gz 100%[======================================>] 58.40M 544KB/s 用时 58s 2025-10-30 14:29:49 (1.01 MB/s) - 已保存 “spark_3_0_2.tar.gz” [61236078/61236078]) [root@yfw spark]# ls -lh spark_3_0_2.tar.gz -rw-r--r-- 1 root root 59M 4月 1 2023 spark_3_0_2.tar.gz [root@yfw spark]#
最新发布
10-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值