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包的知识的更多相关文章
- 【Java基础】Jar包结构结构分析和操作具体解释
作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 一 ...
- [Java基础] 深入jar包:从jar包中读取资源文件
转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的 ...
- java项目打jar包的两种情况
链接地址:http://jingyan.baidu.com/article/6b97984d8a6ddc1ca2b0bfa0.html 本文介绍一下java项目打jar包时的两种情况各怎么操作 方 ...
- IntelliJ IDEA导出Java 可执行Jar包
原文:IntelliJ IDEA导出Java 可执行Jar包 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 打开File -> Project Stru ...
- eclipse生成【带有外部jar包】的java可执行jar包
之前有写过一篇使用eclipse生成java可执行jar包,但是最近的一次使用中无论如何都不成功,当双击执行打成的jar时,弹出如下错误: could not find the main class: ...
- SoapUI接口测试-验签值处理-调用java的加密jar包
转载自:https://www.jianshu.com/p/7c672426a165 一. 背景: 调用接口时有个请求参数是对请求入参按一定规则进行加密生成的验签值,每次不同参数的请求生成唯一的验签值 ...
- java反射查看jar包中所有的类名方法名
不反编译,不用其他工具,用java反射查看jar包中所有的类名方法名,网上很多都报错,下面这个你试试看:话不多说直接撸代码: import java.lang.reflect.Field; impor ...
- Linux上java程序的jar包启动通用脚本(稳定用过)
Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...
- java命令启动jar包
本人对这些命令也是一知半解,记录备用. 1. 使用java命令行执行java文件 # 设置命令窗口标题 title test1 # 开启输出 @echo on # 设置环境变量JAVA_HOME se ...
随机推荐
- BUGKU login3
先看的wp,呢么来复现一遍,emmmmmm,尝试一波,用户名输入admin后,密码随便输,发现提示password error,呢么填其他用户名的话,发现提示username does not exi ...
- 支持向量机SVM——专治线性不可分
SVM原理 线性可分与线性不可分 线性可分 线性不可分-------[无论用哪条直线都无法将女生情绪正确分类] SVM的核函数可以帮助我们: 假设‘开心’是轻飘飘的,“不开心”是沉重的 将三维视图还原 ...
- vivado中如何使用chipscope
如何使用chipscope 参考: https://www.cnblogs.com/liujinggang/p/9813863.html Xilinx FPGA开发实用教程---徐文波 田耘 1.Ch ...
- java学习笔记09-类与对象
物以类聚,人以群分,我们把具有相似特性或品质的物体归为一类. 类:类是一种模板,它描述一类对象的行为和状态. 对象:对象是类的一个实例,有状态和行为. 比如在一支nba球队中,每个球员都有球衣号码,场 ...
- Timeline扩展功能实践指南
转载于http://forum.china.unity3d.com/forum.php?mod=viewthread&tid=32842,介绍了timeline的轨道扩展 Timeline功能 ...
- webstorm Terminal 位置错乱解决方案
win+R 打开终端,右击属性->勾选使用旧版控制台->确定 ,再重启webstrom 即可.
- CSS 屏幕大小自适应
要想实现css屏幕大小自适应,首先得引入 CSS3 @media 媒体查询器: media的使用和规则: ①被链接文档将显示在什么设备上. ②用于为不同的媒介类型规定不同的样式. 语法: @medi ...
- 中国居民18位身份证号验证方法,Java算法实现
public static boolean validate18Idcard(String idcard){ if(idcard == null ) { return false; } if(idca ...
- Springboot @Transactional Mysql事务 无效
JPA默认创建的表是MyISAM引擎,MyISAM引擎不支持事务操作 所以需要将将数据库引擎改为InnoDB 配置修改 spring.jpa.database-platform=org.hiberna ...
- tensorflow卷积神经网络-【老鱼学tensorflow】
前面我们曾有篇文章中提到过关于用tensorflow训练手写2828像素点的数字的识别,在那篇文章中我们把手写数字图像直接碾压成了一个784列的数据进行识别,但实际上,这个图像是2828长宽结构的,我 ...