在学习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包的知识的更多相关文章

  1. 【Java基础】Jar包结构结构分析和操作具体解释

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 一 ...

  2. [Java基础] 深入jar包:从jar包中读取资源文件

    转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的 ...

  3. java项目打jar包的两种情况

    链接地址:http://jingyan.baidu.com/article/6b97984d8a6ddc1ca2b0bfa0.html 本文介绍一下java项目打jar包时的两种情况各怎么操作   方 ...

  4. IntelliJ IDEA导出Java 可执行Jar包

    原文:IntelliJ IDEA导出Java 可执行Jar包 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 打开File -> Project Stru ...

  5. eclipse生成【带有外部jar包】的java可执行jar包

    之前有写过一篇使用eclipse生成java可执行jar包,但是最近的一次使用中无论如何都不成功,当双击执行打成的jar时,弹出如下错误: could not find the main class: ...

  6. SoapUI接口测试-验签值处理-调用java的加密jar包

    转载自:https://www.jianshu.com/p/7c672426a165 一. 背景: 调用接口时有个请求参数是对请求入参按一定规则进行加密生成的验签值,每次不同参数的请求生成唯一的验签值 ...

  7. java反射查看jar包中所有的类名方法名

    不反编译,不用其他工具,用java反射查看jar包中所有的类名方法名,网上很多都报错,下面这个你试试看:话不多说直接撸代码: import java.lang.reflect.Field; impor ...

  8. Linux上java程序的jar包启动通用脚本(稳定用过)

    Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...

  9. java命令启动jar包

    本人对这些命令也是一知半解,记录备用. 1. 使用java命令行执行java文件 # 设置命令窗口标题 title test1 # 开启输出 @echo on # 设置环境变量JAVA_HOME se ...

随机推荐

  1. “Excel-建议不可用于您所选择的数据”错误提示

    Excel作为一项的数据图表绘制软件,在工作中经常用到.“建议不可用于您所选择的数据这一错误提示,我也遇到了几次了,但是每次遇到总是忘了上次是什么原因.这次,写下博客记录.一般都是在复制网页或者其他数 ...

  2. 记一次被吊打的排位赛(writeup)

    XMAN通行证 给了一串疑似base64的东西: a2FuYmJyZ2doamx7emJfX19ffXZ0bGFsbg== 解密后得到: kanbbrgghjl{zb____}vtlaln 想到应该是 ...

  3. [NOIP2017提高组]小凯的疑惑-扩展欧几里得

    #include<bits/stdc++.h> using namespace std; long long a,b,x,y,ans,tmp; inline void ex_gcd(lon ...

  4. Linux下执行自定义的可执行命令无效原因

    1 前言 用golang编译成可执行文件tt stats text.txt(tt 是编译后重命名的可执行文件),然后直接执行失败了,后来使用./tt stats text.txt可以了. 执行结果如下 ...

  5. c++入门篇五

    默认参数: //默认参数//函数的默认参数,参数后面有'='//函数参数注意事项,如有一个位置有了默认参数//那么从该位置的后面就必须要有参数 , ) { //b有默认参数,b的后面也应该要有默认参数 ...

  6. js-面试题整理

    var Foo = function(){ getName = function(){alert(1)}; return this; } Foo.getName = function(){alert( ...

  7. PCB开钢网不容忽视的问题

    作为PCB工程师,或许你已经出过很多次的钢网文件,但却不一定了解出钢网有哪些要求. 1.首先我们来看下钢网的实物图,就是一块薄薄的钢板,钢网上有很多焊盘孔.把钢网盖在PCB板上后,这些焊盘孔就会和PC ...

  8. NAT穿透解决

    1.各种网络环境下的P2P通信解决方法: (1)如果通信双方在同一个局域网内,这种情况下可以不借助任何外力直接通过内网地址通信即可:   (2)如果通信双方都在有独立的公网地址,这种情况下当然可以不借 ...

  9. swagger出现no response from server错误的解决办法

    解决办法:1.启用80端口2.如果不是使用的80端口,是用的nginx做了映射的其他端口的话可以用Springfox swagger-ui 覆盖默认request host,加上这个在spring的应 ...

  10. System.TimeoutException: The operation requested on PersistentChannel timed out

    这个异常是在使用EasyNetQ时,遇到的问题,找了两个小时. 详细错误 Error:System.TimeoutException: The operation requested on Persi ...