Java学习之包

一、包:就是类的命名空间(在文件系统中的表现形式就是文件夹)

二、代码编写规则

1、写在程序文件的第一行

2、格式:package 包名[.包名1.包名2......]

类的全名称 包名.类名

例如:

1 package mypack; //
2 class PackageDemo
3 {
4     public static void main(String[] args)
5     {
6         System.out.println("Hello Package!");
7     }
8 }

编译(javac -d . Java文件--【-d .】代表当前目录下存放.class文件):

 运行(java 类的全名称(包名.类名)):

三、包与包之间访问

1、class文件在不同目录

 1 package mypack; //
 2 class PackageDemo
 3 {
 4     public static void main(String[] args)
 5     {
 6         packa.DemoA d=new packa.DemoA();
 7         d.show();
 8         System.out.println("Hello Package!");
 9     }
10 }

被访问的类

 1 package packa;
 2 
 3 //被访问的包中的类访问权限必须是public
 4 public class DemoA
 5 {
 6     //被访问的包中的类的方法访问权限必须是public
 7     public void show()
 8     {
 9         System.out.println("DemoA Show run");
10     }
11 }

编译

编译DemoA

编译PackageDemo

设置class文件所在目录set classpath=.;XXXX(小技巧classpath的值第一个值为当前目录,以分号【;】分开)

2、访问方式

①、通过类的全名称(以上的例子都是)

②、通过import(包的导入),import 就是导入包中的类,可以使用通配符(*)

 1 package mypack; //
 2 
 3 import packb.DemoB;//导入了packb包中的DemoB类
 4 class PackageDemo
 5 {
 6     public static void main(String[] args)
 7     {
 8         //1.访问不同包中的类,需要写类的全名称
 9         packa.DemoA d=new packa.DemoA();
10         d.show();
11         DemoB b=new DemoB();
12         b.show();
13         System.out.println("Hello Package!");
14     }
15 }
1 package packb;
2 
3 public class DemoB
4 {
5     public void show()
6     {
7         System.out.println("DemoB Show run");
8     }
9 }

四、jar

jar:java 的压缩文件

1 package jarpack;
2 class JarPackDemo
3 {
4     public static void main(String[] args)
5     {
6         System.out.println("Hello Jar Package!");
7     }
8 }

编译

 运行

运行jar命令

 

示例:
 # 创建包含两个类文件的名为 classes.jar 的档案:
 jar --create --file classes.jar Foo.class Bar.class
 # 使用现有的清单创建档案, 其中包含 foo/ 中的所有文件:
 jar --create --file classes.jar --manifest mymanifest -C foo/ .
 # 创建模块化 jar 档案, 其中模块描述符位于
 # classes/module-info.class:
 jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0
     -C foo/ classes resources
 # 将现有的非模块化 jar 更新为模块化 jar:
 jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0
     -C foo/ module-info.class
 # 创建包含多个发行版的 jar, 并将一些文件放在 META-INF/versions/9 目录中:
 jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
要缩短或简化 jar 命令, 可以在单独的文本文件中指定参数,
并使用 @ 符号作为前缀将此文件传递给 jar 命令。
 示例:
 # 从文件 classes.list 读取附加选项和类文件列表
 jar --create --file my.jar @classes.list
原文地址:https://www.cnblogs.com/WarBlog/p/12067325.html