包、import语句以及jar包的创建

目录

一、包

二、import语句

1.两个有包类

2.一个有包名类一个无包类

三、jar包的创建

1.编写清单文件

2.使用jar命令

3.使用jar文件中的类


一、包

在我们写java源文件时,经常会将几个源文件打包在同一个包,而包就是我们很重要的源文件储存手段,如果我们写一些一次性代码,包可要可不要,但当我们要创建一个工程时,很多源文件通常不在一个包下,如何要引用这些源文件中的类,我们就要先将其打包然后再用import语句引用我们所需要的类。

首先,我们先来创建一个包,包的名字遵循java标识符的规范,但当你用几个标识符加一起时,中间用"."隔开,例如:

package com.test1._4_8

注:在包的名字前,要有关键字"package(包)","com.test1._4_8"就是包名。

一个有包的源文件,它的字节码不能随意存放,例如:

我创建一个包名叫com.com,那么它的class字节码文件就必须放在"\com\com"的路径下,而源文件可以随意存放,假设该包的绝对路径为"C:\src\com\com",有一种简单的方式,就是把源文件放在"C:\com\com"的路径下,再来编译源文件

C:\src> javac com\com\源文件

这样,编译完成后,字节码文件就会默认存放在com\com路径下。

运行有包名的主类:

上文说了有包名的类字节码文件一定在包路径中,假设主类的包名:com.test,存放在"C:\src"中那么主类的全名就变成了com.test.主类名,在终端运行时,首先要到包目录的父录上运行,所以应到"C:\src"上运行,其次也要写上主类的全名,例如:

C:\src >java com.test.主类名

二、import语句

import语句是常见且用来引用其他包中类的语句,,它一般引用包的父录相同的包或者无包类,即包名和源文件左对齐

1.两个有包类

其中一个是siu.test1.TestOne(TestOne是类名),另一个是come.test2.TestTwo(TestTwo也是类名),若我想在TestOne类中引用TestTwo类,则"siu\test1\TestOne.class"和"com\test\TestTwo"的父目录都得是"\src"(假设src中存放这两个目录)。

2.一个有包名类一个无包类

同上1.,也是遵循"包和源文件左对齐,父录一致"的规范,例如一个源文件"Trc.java",一个有包名类"test1.com.Ts",则他们的父录都得是"C:\src"(同上)。

import语句的写法:

首先import语句要写在"package 包名"和类之间,其次import 后跟上类的全名例如:

package test.com//包名为test.com
import trc.test.TestOne//引用trc.test.TestOne类
 class TestTwo{//类
}

三、jar包的创建

上文讲了用import来引用同父录的包的类和源文件,但是不在一个父录的包和源文件,上诉方法不可直接引用,要先将我们所要引用的包和源文件的字节码文件压缩为一个jar包以供其他源文件引用,具体操作如下:

注:假设由两个有包名类:“TestOne.java”和“TestTwo”分别存放在"C:\src\trc\test1"和"C:\src\trc\

test2"下,则先编译两个源文件:

C:\src >javac trc\test1\TestOne.java
C:\src >javac trc\test2\TestTwo.java

1.编写清单文件

在记事本里写一个清单文件qingdan.mf(Manifestfiles)

qingdan.mf

在":"后都要有一个空格,保存类型选择"所有文件",记得将文件名后的".txt"先删除,编码选择"ANSI"

保存在包路径的父录"C:\src"下

2.使用jar命令

保存qingdan.mf到C:\src下后,在\src目录下进入终端,使用jar命令生成一个名字为Jerry.jar的jar文件

C:\src>jar cfm Jerry.jar qingdan.mf trc\test1\TestOne.class trc\test2\TestTwo.class
//也可用C:\src>jar cfm Jerry.jar qingdan.mf trc\test1\*.class trc\test2\*.class(*.class代表包路径下所有扩展名为class的字节码文件)

3.使用jar文件中的类

上面我们已经压缩好了jar文件,假设我们创建一个有包名类"com.test.Test"存放在“C:\src\com\test”中,若在Test.java源文件中引用Jerry.jar文件中保存的TestOne类和TestTwo类

package com.test
import trc.test1.TestOne
import trc.test2.TestTwo
public class Test{
public static void main(String args[]){
}
}

注:为了节省时间,所以博主并没有详细写些类中的类体,但是你在写代码时按照我的格式来就行

编写完Test.java源文件后,我们要进行编译,由于使用了jar文件,所以我们在编译时要加上-cp参数

C:\src>javac-cp.;Jerry.jar com\test\Test.java
//.;和jar文件间不要有空格,通常写这个命令时“.;”一定要保存,这是为了让该源文件可以引用其他所在该父录的其他自定义包类和无包类以及java系统给的类库中的类
//如果jar文件和你所要引用jar文件的有包类或无包类的父录一样,则按照上述写法,若不一样,则要写出jar文件的绝对途径,假设Jerrr.jar不在C:\src中,而在C:\ch4中,则上面命令要改成
C:\src>javac-cp.;C:\ch4\Jerry.jar com\test\Test.java
//如果使用多个jar文件中的类,那jar文件要用;分开
例如:
C:\src>javac-cp.;Jerry.jar;Ch.jar;Com.jar com\test\Test.java

3.运行主类

在C:\src中进入终端,使用-cp参数加载程序需要的jar文件中的类

C:\src>java-cp Jerry.jar; com.test.Test
//;与后面的主类名之间至少有一个空格
如果-cp参数需要用多个jar文件中的类,这些jar文件要用;分开,但是不留空格,但最后的jar文件后还是要有一个;与主类名之间有空格

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值