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 ...
随机推荐
- Tomcat实现反向代理
实验环境搭建: web server Director: 192.168.11.131(host-only) 192.168.1.114(桥接) 安装好Apache ...
- powermock单元测试小结
最近时不时的需要单元测试来写覆盖率.简单总结一下日常心得: 1.首先指明需要测试的类:@PrepareForTest({ RewardGoldServiceImpl.class }) 2.其次在测试类 ...
- Redis在Linux中安装使用
一.安装$ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd re ...
- MIUI9系统怎么卡刷开发版获取ROOT超级权限
小米的设备不同手机型号一般情况下官方网站都提供两个不同的系统版本,大概可分为稳定版和开发版,稳定版没有提供ROOT权限管理,开发版中就支持了ROOT权限,很多情况下我们需要使用的一些功能强大的工具,都 ...
- [原创][Synth 8-2543] port connections cannot be mixed ordered and named ["*_Top.v":1151]
Vivado综合错误: [Synth 8-2543] port connections cannot be mixed ordered and named ["*_Top.v":1 ...
- RabbitMQ通过Exchange.topic 对routingkey 进行正则表达式匹配
消费者: static void Main(string[] args) { ConnectionFactory factory = new ConnectionFactory() { HostNam ...
- 《ServerSuperIO Designer IDE使用教程》-1.标准Modbus和非标准协议的使用、测试以及驱动开发。附:v4.2发布
ServerSuperIO Designer IDE v4.2版本更新内容: 增加ServerSuperIO.Host运行程序,可以使用IDE进行测试,Host为运行环境. 针对设备驱动增加导入监测点 ...
- 利用js实现 禁用浏览器后退
现在很多的内部系统,一些界面,都是用户手动点击退出按钮的.但是为了避免,用户误操作 点击浏览器后退,或者用鼠标手势后退什么的.容易出现误操作. 所以在有些页面上,适当的禁用浏览器的后退, ...
- GLSL ES 3.0 和 2.0 的区别
GLSL ES 3.0 和 2.0 的区别 语法区别 attribute和varying. 取而代之的是 in和out 头文件多了个#version 300 es 纹理 texture2D 和 tex ...
- Python 列表切片陷阱:引用、复制与深复制
Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...