
正文
Java学习之包
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一、包:就是类的命名空间(在文件系统中的表现形式就是文件夹)
二、代码编写规则
1、写在程序文件的第一行
2、格式:package 包名[.包名1.包名2......]
类的全名称 包名.类名
例如:
package mypack; //包
class PackageDemo
{
public static void main(String[] args)
{
System.out.println("Hello Package!");
}
}
编译(javac -d . Java文件--【-d .】代表当前目录下存放.class文件):


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

三、包与包之间访问
1、class文件在不同目录
package mypack; //包
class PackageDemo
{
public static void main(String[] args)
{
packa.DemoA d=new packa.DemoA();
d.show();
System.out.println("Hello Package!");
}
}
被访问的类
package packa; //被访问的包中的类访问权限必须是public
public class DemoA
{
//被访问的包中的类的方法访问权限必须是public
public void show()
{
System.out.println("DemoA Show run");
}
}
编译
编译DemoA 
编译PackageDemo

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

2、访问方式
①、通过类的全名称(以上的例子都是)
②、通过import(包的导入),import 就是导入包中的类,可以使用通配符(*)
package mypack; //包 import packb.DemoB;//导入了packb包中的DemoB类
class PackageDemo
{
public static void main(String[] args)
{
//1.访问不同包中的类,需要写类的全名称
packa.DemoA d=new packa.DemoA();
d.show();
DemoB b=new DemoB();
b.show();
System.out.println("Hello Package!");
}
}
package packb; public class DemoB
{
public void show()
{
System.out.println("DemoB Show run");
}
}

四、jar
jar:java 的压缩文件
package jarpack;
class JarPackDemo
{
public static void main(String[] args)
{
System.out.println("Hello Jar Package!");
}
}
编译

运行

运行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
# 创建包含两个类文件的名为 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 命令。
并使用 @ 符号作为前缀将此文件传递给 jar 命令。
示例:
# 从文件 classes.list 读取附加选项和类文件列表
jar --create --file my.jar @classes.list
# 从文件 classes.list 读取附加选项和类文件列表
jar --create --file my.jar @classes.list







