java 包

包(package)
对类文件进行分类管理。
给类提供多层命名空间。
写在程序文件的第一行。
类名的全称的是包名.类名。
包也是一种封装形式。

package pack;
					class  PackageDemo
					{
						public static void main(String[]args)
						{
							packa.DemoA d = new packa.DemoA();
							d.show();
							//packb.DemoBd = new packb.DemoB(); 
							//d.method();
						}
					}
							

PackageDemo 、java:8:找不到符号
符号:类DemoA
位置:类pack, PackageDemo
DemoAd=new DemoA();
PackageDemo . java:8:找不到符号
符号:类DemoA
位置:类pack. PackageDemo
DemoAd=new DemoA();
2错误
错误原因:类名写错,
因为类名的全名是:包名.类名

PackageDemo . java:8:软件包packa不存在
packa.DemoAd=new packa.DemoA();
PackageDemo . java:8:软件包packa不存在
packa.DemoAd=new packa.DemoA();

错误原因:packa包不在当前目录下
需要设置classpath,告诉jvm去哪里找指定的packa包。
PackageDemo . java:8:packa.DemoA在backa中不是公共的;无法从外部软件包中对其进行访问packa.DemoAd=new packa.DemoA();
PackageDemo ,java:8;packa. Demo A在packa中不是公共的;无法从外部软件包中对其进行访问packa.DemoAd=new packa.DemoA();
错误
错误原因:有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限。所以被访问的类要被public修饰。
PackageDemo , java:9:show()在packa.DemoA中不是公共的;无法从外部软件包中对其进行访问
d. show();

错误原因:类公有后,被访问的成员也要公有才可以被访问。
总结:
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种,public protected。
 

public protected  default  private
同一个类中 ok ok ok ok
同一个包中 ok ok ok
子类 ok ok
不包中 ok

什么是jar包

JAR(Java ARchive,Java 归档)是一种与平台无关的文件格式,可将多个文件合成一个文件。用户可将多个 Java applet 及其所需组件(.class 文件、图像和声音)绑定到 JAR 文件中,而后作为单个的简单 HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。JAR 格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。另外,applet 编写者也可在 JAR 文件中用数字签名的方式签写各项以确认其来源。它用 Java 编写,可与现有的 applet 代码完全向后兼容且可充分扩展。

JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

JAR文件是跨平台的,所以不必关心涉及具体平台的问题。除了可以包括声音和图像文件以外,也可以在其中包括类文件。
涉及因特网应用时,JAR文件显得特别有用。在JAR文件之前,Web浏览器必须重复多次请求web服务器,以便下载完构成一个“程序片”(Applet)的所有文件。除此以外,每个文件都是未经压缩的。但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。同时,由于采用了压缩技术,所以可在更短的时间里获得全部数据。另外,JAR文件里的每个入口(条目)都可以加上数字化签名(详情参考Java用户文档)。
一个JAR文件由一系列采用Zip压缩格式的文件构成,同时还有一张“详情单”,对所有这些文件进行了描述(可创建自己的详情单文件;否则,jar程序会为我们代劳)。在联机用户文档中,可以找到与JAR详情单更多的资料(详情单的英语是“Manifest”)。
jar实用程序已与Sun的JDK配套提供,可以按我们的选择自动压缩文件。请在命令行调用它

JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

一个 JAR 文件可以用于:

□ 用于发布和使用类库 
□ 作为应用程序和扩展的构建单元 
□ 作为组件、applet 或者插件程序的部署单位 
□ 用于打包与组件相关联的辅助资源 

JAR 格式允许您压缩文件以提高存储效率。

·传输平台扩展。 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。
·包密封。 存储在 JAR 文件中的包可以选择进行密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR 文件中找到。

创建可执行 JAR 

创建一个可执行 JAR 很容易。首先将所有应用程序代码放到一个目录中。假设应用程序中的主类是 com.mycompany.myapp.Sample 。您要创建一个包含应用程序代码的 JAR 文件并标识出主类。为此,在某个位置(不是在应用程序目录中)创建一个名为 manifest 的文件,并在其中加入以下一行:  

Main-Class: com.mycompany.myapp.Sample 然后,像这样创建 JAR 文件: 

jar cmf manifest ExecutableJar.jar application-dir 

所要做的就是这些了,现在可以用java -jar执行这个JAR文件ExecutableJar.jar。  

一个可执行的 JAR 必须通过 menifest 文件的头引用它所需要的所有其他从属 JAR。如果使用了 -jar 选项,那么环境变量 CLASSPATH 和在命令行中指定的所有类路径都被 JVM 所忽略。

JAR包与描述对照表 注:jar包尾后的版本号不代表当前最高版本
activation-1.1.jar Sun的JavaBeans Activation Framework(JAF),JavaMail要运行必须依赖于它的支持
asm-3.0.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar asm是一个轻量级字节码处理和分析框架
alveole-struts2.jar
alveole-tools.jar  
aspectjtools-1.5.3.jar Aspect提供的注释类库和相应的解析类库
atomikos-util.jar 数据库提供分布式事务支持
c3p0-0.8.5.2.jar C3PO是一个数据库连接池
cglib-nodep-2.2.jar CGLIB是一个强大的高质量高性能的代码生成库,在运行时可以用它来扩展Java类
commons-attributes-api.jar Apache Commons包中的一个,包含了一些属性的api
commons-beanutils-1.6.jar Apache Commons包中的一个,包含了一些Bean工具类类
commons-chain-1.1.jar  
commons-codec-1.3.jar  
commons-collections-3.2.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大
commons-configuration.jar Apache Commons包中的一个,用于协助读取配置和首选项文件
commons-digester-1.8.jar Apache Commons包中的一个,通过它可以很方便的解析xml文件生成java对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值