【Java 温故知新 + 循序整理 】 >> JDK管理Java应用

【Java面向对象系列 温故知新 + 循序整理 】>> JDK管理Java应用

what@管理Java应用:指创建Java应用的目录结构编译运行,以及发布Java应用的操作。

1.Java应用常用目录结构>>

目录描述
src 子目录存放Java源代码
classes 子目录存放编译生成的Java类文件
lib 子目录存放第三方Java软件的Jar文件
doc 子目录存放各种帮助文档
doc\api 子目录存放JavaDoc 文档
deploy 子目录存放Java应用的打包文件

2.JDK简介以及主要组成>>

what:JDK 是Java Development Kit(Java 开发工具包)的缩写。它为Java应用程序提供了基本的开发和运行环境,JDK也别称为Java标准开发环境(Java Standard Edition,JavaSE)。

JDK主要包括的内容(了解并掌握):

  • Java虚拟机(Java Virtual Machine):负责解析和执行Java程序。Java虚拟机可以运行在各种操作系统平台上。
  • JDK类库(JavaSE API):提供基础的Java类及各种实用类。java.lang、java.io、java.util、java.awt、javax.swing和java.sql包中的类都位于JDK类库中。
  • 开发工具:可执行工具,如:javac.exe(编译工具)、java.exe(运行工具)、javadoc.exe(生成JavaDoc文档的工具)和jar.exe(打包工具)等

3.编译Java源文件(饭碗)>>

what:javac命令用于编译Java源文件,javac 命令的使用语法如下:

javac [options] [sourcefiles]  ====》 javac命令 + 命令选项(参数) + 源文件路径

javac命令后面跟多个命令选项,以便控制javac命令的编译方式。主要命令选项如下表:

命令选项说明
-nowarn不输出警告信息。非默认选项
-verbose输出编译器运行中的详细工作信息。非默认选项
-classpath 路径指定或覆盖classpath环境变量,默认为当前路径
-sourcepath 路径指定Java源文件的路径
-d 目录指定编译生成的类文件的存放目录
-help显示各个命令选项的用法

javac命令中可以指定编译多个Java源文件,这些文件之间以空格隔开。

编译的流程 ===》 问题导火线(若A类引用B类,编译的流程是怎样个流程???) 如下解答:

(1)由于A类引入B类,因此Java编译器在编译A类时,需先到classpath路径下寻找B.class文件,然后到sourcepath目录下寻找B.java文件。
(2)如果同时找到了B.class文件和B.java文件,Java编译器会根据B.java文件的更新日期来判断B.class有没有过期,如果过期,就重新编译B.java,否则就直接使用B.class。
(3)如果只找到B.class文件,Java编译器就直接使用这个B.class。如果只找到B.java文件,Java编译器就会编译这个B.java。
(4)如果既没有找到B.java文件,也没有找到B.class文件,就会抛出编译错误,提示无法解析A类的“B”符号

4.运行Java源文件(饭碗)>>

what:java命令用于运行Java程序,它会启动Java虚拟机加载相关的类,然后调用主程序类的main()方法。java命令后面也跟参数选项,如下:

命令选项说明
-classpath 路径指定或覆盖classpath环境变量
-verbose输出运行中的详细工作详细。非默认选项
-D<属性名=属性值>设置系统属性
-jar指定运行某个Jar文件中的特定Java类
-help显示各个命令选项的用法

5.给Java应用打包(饭碗)>>

what:JDK的jar命令能够把Java应用打包成一个文件,这个文件的拓展名为.jar。这种打包文件被称为JAR文件(Java Archive)文件,它独立于任何操作系统平台,而且支持压缩格式。给Java应用打包的好处在于:便于发布Java应用,提高在网络上传输Java应用的速度。

打包的步骤如下(同Linux系统中的压缩解压雷同):
(1)首先在DOS命令行转到要打包的Java应用程序中的classes目录下;
(2)然后运行如下命令:jar -cvf XXX路径\XXX.jar *

java命令和javac命令会读取JAR文件中的Java类。例如以下命令会把XXX.jar添加到classpath中,然后运行其中的XXX类

java -claspath XXX路径\XXX.jar XXX类

jar命令还具有展开JAR文件的功能,如下命令:

 jar -xvf  XXX路径\XXX.jar

6.使用和创建JavaDoc文档(饭碗)>>

what:Java类通过JavaDoc文档来对外公布自身的用法,JavaDoc文档是基于HTML格式的帮组文档。
why:对于用户创建的Java类,如何编写这种HTML格式的JavaDoc文档呢?手工编写JavaDoc文档显示是很费力的事!
how:JDK提供了一个javadoc.exe程序,它能够识别Java源文件中符合特定规范的注释语句,根据这些注释语句自动生成JavaDoc文档。

6.1 javadoc命令的用法 >

javadoc命令和javac命令一样,也包含了许多命令选项,如下表列举了一些常用命令选项的用法

命令选项描述
-public非默认选项。仅为public访问级别的类及类的成员生成JavaDoc文档
-protected默认选项。仅为public和protected访问级别的类及类的成员生成JavaDoc文档
-package非默认选项。仅为public和protected以及默认访问级别的类及类的成员生成JavaDoc文档
-private非默认选项。仅为public、protected、默认以及private访问级别的类及类的成员生成JavaDoc文档
-version非默认选项。解析@version标记
-author非默认选项。解析@author标记
-splitindex非默认选项。把索引文件划分为每个字母对应一个索引文件
-sourcepath 路径默认为当前目录。指定Java源文件的路径
-classpath 路径默认为当前目录。指定classpath
-d 目录默认为当前目录。指定JavaDoc文档的输出目录

javadoc命令的使用格式如下:

	javadoc[options] [packagenames] [sourcefiles]   =====》 命令 + 参数 + 生成文档的位置 + 要生成文档的源文件路径(支持多个,空格隔开)

在Java源文件中,只有满足特定规范的注释及特定的用法,才会构成JavaDoc文档。这些规范包括:

(1)注释以“/**”开始,并以“*/”结束,里面可以包含普通文本、HTML标记和JavaDoc标记。
(2)javadoc命令只处理Java源文件中在类声明、接口声明、成员方法声明、成员变量声明以及构造方法声明之前的注释,忽略位于其他地方的注释。

6.2 JavaDoc标记

what@JavaDoc标记:在构成JavaDoc文档的注释语句中,可以使用JavaDoc来描述作者、版本、方法参数和方法返回值等信息。常见的JavaDoc标记如下表:

JavaDoc标记描述
@version指定版本信息
@since指定最早出现在哪个版本
@author指定作者
@see生成参考其他JavaDoc文档的链接
@link生成参考其他JavaDoc文档的链接,它和@see标记的区别在于:@link标记能嵌入到注释语句中
@deprecated用来表明被注释的类、变量或方法已经不提倡使用,在将来的版本中可能被废弃
@param描述方法的参数
@return描述方法的返回值
@throws描述方法抛出的异常,指明抛出异常的条件

7. Java虚拟机运行Java程序的基本原理

Java虚拟机(Java Virtual Machine,JVM)是由JDK提供的一个软件程序。虚拟机的任务是执行Java程序。

在这里插入图片描述

从上图可看出,由Java源文件编译出来的类文件可以在任意一种平台上运行,Java语言之所以有这种跨平台的特点,要归功于Java虚拟机。Java虚拟机封装了底层操作系统的差异,不管是在哪种平台上,都按以下同样的步骤来运行程序:

(1)把.class文件中的二进制数据加载到内存中。
(2)对类的二进制数据进行验证。
(3)解析并执行指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值