您的位置:首页 > 编程语言 > Java开发

一、java包的用法---基础,二、包的用法---进阶,三、JAR命令用法,包是一组类的集合,包其实就是多个文件夹构成的多级目录,包名全部用小写字母表示,在程序中要声明类所属的包时,用package

2011-10-28 17:12 736 查看
一、包的用法---基础
包是一组类的集合,包其实就是多个文件夹构成的多级目录,包名全部用小写字母表示,在程序中要声明类所属的包时,用package关键字。

package edu.cn.fzh;

package语句必须作为整个文件的第一条语句,并且只能有一条。如图1所示



图1 package的用法
并把Hello.java文件保存到F:\下,并编译,运行,如图2所示,编译没问题,但运行结果不对,因为NoClassDefFoundError: Hello,没有找到名字叫Hello的类。



图2 编译运行结果(1)
原因是,现在已经有了包了:edu.cn.fzh, 类不能叫Hello,而应加上包名,运行时应修改为, java edu.cn.fzh.Hello,但结果依然不对,如图3所示:



图3编译运行结果(2)
解决方法:修改编译命令,应该用以下命令进行编译。

javac -d . Hello.java

-d的含义是根据程序中的包名生成文件夹,“.”的含义是在哪生成文件夹,代表在当前路径(F:\)生成edu文件夹,如图4所示,将编译后生成的class类放到edu\cn\fzh目录下,



图4 –d命令编译自动生成目录
这样就把类文件和源程序文件分开。

运行程序时应该输入java edu.cn.fzh.Hello, 不能直接使用java Hello

二、包的用法---进阶

在以上的演示中,我们并没有把源程序文件,Hello.java放在包对应的目录下,如果类Hello可能被其他的类调用,那么应该将Hello.java源程序放在edu/cn/fzh的目录下,如图5,图6所示:



图5 目录



图6 Hello.java 内容
将Test.java文件保存到F:\,内容如图7所示:



图7 Test.java内容
在F:\下建立class文件夹,编译命令如图8所示:该命令中只编译主类即可,系统会自动对其他类进行编译。



图8 编译命令
此时class文件的内容如图9、图10所示



图9 编译后结果(1)



图10 编译后结果(2

运行程序的命令如图11所示:



图11 运行命令
这样就将class文件和java源程序文件分开,但这时class文件有多个,

三、JAR命令用法

JAR文件,就是将程序的所有类文件.class文件压缩打包,类似与zip,但与zip不同,JAR文件还包含了一个META-INF/MANIFEST.MF的文件。

JAR打包的过程:

在class目录下创建一个文件,名字随意定,扩展名随意,也可以没有扩展名,如文件就叫mani,提前在文件中输入以下内容:

Main-Class: Test

注意: Main-Class 写法固定,区分大小写,冒号后要由空格,作用是指示该jar的入口类即主类,如果该类有包,要注明包名,但没有“.java”,也没有”.class”

最后别忘了输入“回车符”

JAR包命令如下:(注意修改命令的路径到class文件和mani文件所在的路径)



具体内容:

1. JAR为命令名

2. cvmf为jar命令子命令,其中c代表创建jar文件,v代表生成详细报告,m表示指定Manifest清单文件,及刚才创建的mani文件,f代表指定jar文件名字

3. mani代表Manifest清单文件的名字,如果有后缀名要注明后缀名

4. app.jar表示生成的jar文件的名字

5. 后面的edu和Test.class表示要加入到jar包中的文件或文件夹

生成的报告及app.jar文件:





运行jar文件的命令:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: