Java关于jar包的知识详解
在学习jar包之前,要先弄懂Java包,以及关于Java包的相关概念。
一、包
为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。
格式为:
package pkg1[.pkg2[.pkg3…]];
代码实例:
package cn.com.zhouzhou;//包名一定要由小写字母组成 public class Lession1 { public static void main(String[] args) { System.out.println("这是我创建的第一个在包下的文件"); } }
注意事项:
1.程序中如果有package语句,该语句一定是源文件中的第一条可执行语句;
2.package语句的前面只能有注释或空行;
3.一个文件中最多只能有一条package语句;
4.包的名字有层次关系,各层之间以点分隔(上例中的“cn.com.zhouzhou”);
(图:演示)
5.包层次必须与Java开发系统的文件系统结构相同;
6.通常包名中全部用小写字母;
7.当使用包说明时,程序中无需再引用(import)同一个包或该包的任何元素;
8.import语句只用来将其他包中的类引入当前名字空间中。而当前包总是处于当前名字空间中。
* 示例演示:
1)编译的时候用:(我的文件是存在E盘了)
e:\>javac -d . Lession1.java // 可以生成对应的文件夹结构
2)执行的时候,要执行全类名
java cn.com.zhouzhou.Lession1
注意事项说明:
1.同一个源文件中的类,都在同一个包中,同一个包中的内容互相访问,不用导包;
2.导包的时候 以下两句;
import cn.com.zhouzhou.beans.*;
import cn.com.zhouzhou.beans.UserInfo;
这两句,只在编译的时候有后者稍快一点,在运行的时候没有任何区别
3.如果要设置classpath ,要设置到最外层的文件夹所在的目录上,比如:
package cn.com.zhouzhou;
set classpath=cn的所在的文件夹名称
4.对于父包和子包,在使用上没有任何关系,只要不在一个包中,引用的时候就必须导包;
5.以后在开发中,如果出现一个类名找不到的情况,主要以下原因:
1)类名写错了
2)包名错了
3)classpath 设置错了
6.对于 java.lang 包下的类,使用的时候可以不导包。
二、jar包
java中的jar文件 ,装的是 .class 文件。它是一种压缩,和zip兼容,被称为jar包。JDK提供的许多类,也是以jar包的形式提供的。
在用的时候呢,你的文件里有很多个类,把这些类和他们的目录一起压缩到一个文件中给别人,会显得更专业,有条理。别人拿到这个jar包之后,只要让他的classpath 的设置中包含这个jar文件,java虚拟机,在装载类的时候,就会自动解压这个jar文件,并将其当成目录,然后在目录中查找我们所要的类及类的包名和所对应的目录的结构。
那么如何创建一个Jar包呢?下面我将演示一下具体步骤:
1.需要打成jar包的文件
package cn.com.zhouzhou;//包名一定要由小写字母组成 public class Lession2 { public static void main(String[] args) { System.out.println("这是我要打jar包的文件"); } }
2.编译
e:\>javac -d . Lession2.java
(d后面的点,点的两侧都要有空格)
3.打Jar包
jar -cvf myjarbao.jar cn
(生成名叫myjarbao.jar的文件;后面的cn不要忘记)
生成结果如下:
以上所述是小编给大家介绍的Java关于jar包的知识详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- Android之MaterialDesign应用技术2-仿支付宝上滑搜索框缓慢消失
- 披着狼皮的羊——寻找惠普多款打印机中的RCE漏洞
- Android之MaterialDesign应用技术
- 蛙啊!老母亲给你整理了DEDECMS漏洞集合,快回家!
- Android之Bmob移动后端云服务器
- golang基于redis lua封装的优先级去重队列
- Java设计模式总汇二(小白也要飞)
- Java设计模式总汇一
- Android数据绑定技术二,企业级开发
- Android数据绑定技术一,企业级开发
- 工具| sqlmap payload修改之路(下)
- Retrofit网络请求库应用02——json解析
- Servlet与Jsp的结合使用实现信息管理系统二
- Retrofit网络请求库应用01
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现打地鼠小游戏
- android实现手机传感器调用
- Android实现接近传感器
- PHP 模拟登陆功能实例详解
- PHP判断一个变量是否为整数、正整数的方法示例
- android实现打地鼠游戏
- Yii框架连表查询操作示例
- Android studio listview实现列表数据显示 数据循环显示效果
- 关于Curl在Swoole协程中的解决方案详析
- Flutter随机迷宫生成和解迷宫小游戏功能的源码
- Yii框架实现对数据库的CURD操作示例
- Laravel5.4框架中视图共享数据的方法详解
- Android视频悬浮窗口实现的示例代码
- 使用Laravel中的查询构造器实现增删改查功能
- Flutter 自定义Drawer 滑出位置的大小实例代码详解