Linux
Linux是主流的服务器操作系统,广泛应用于互联网、云计算、智能手机(Android)等领域,是开源的,并且免费。由于Java主要用于服务器端的开发,因此Java应用的部署环境有很多为Linux。
1.1 Linux目录结构
Linux操作系统最顶层只有一个根目录root,所有文件都存储在这一个根目录之下。Linux操作系统是在根目录root下有一个名叫mnt的子目录,在这个目录下,会出现一个目录,假设为sdcard,称之为挂载点,对它的操作就是对外部设备的操作。Linux操作系统对权限要求比较严格,用户登录后并非对所有目录具有增删改查权限,默认的当前目录为根目录下的home目录下的soft01,称之为主目录,对这个目录具有最高权限,其余目录文件一般都是只读的,不能随意删除,这样就保证了安全性。
Windows操作系统的目录结构,是以盘符为单位,C盘、D盘、E盘等等,数据存储在各个盘符之下。Windows操作系统若插入一个外部设备(U盘等),在系统中是多了一个盘符H,对H盘的操作就是对外部设备的操作。Windows操作系统某用户登录系统后,对所有文件都具有增删改查的权限,即:可以操作任意目录,假设将C盘下Windows目录删除,则会导致系统异常,安全性较差。
1.2 pwd、cd、ls命令
Linux系统是基于命令行的方式进行操作,其中经常用于操作目录的命令如下所示:
pwd:用于显示当前工作目录。
ls:用于查看当前工作目录内容。
cd:用于改变当前工作目录。
1.3 相对路径和绝对路径
在Linux系统中,为指明一个文件或目录在文件系统中的位置,有两种表示方式:相对路径和绝对路径。
相对路径:文件或目录相对于当前工作目录的位置。例如:路径“soft01/workspace”表示当前目录下的soft01目录下的workspace;有两个较特殊的相对路径:“.”表示当前目录,“..”表示上一级目录。
绝对路径:文件或目录相对于根目录的位置,绝对路径都从“/”开始。例如:”/home/soft01”,表示根目录下的home目录下的soft01。
1.4 Java编译运行环境
程序员所编写的是以.java为后缀的文件,此文件操作系统不能正确识别,因此,首先要经过编译,生成所谓的字节码文件(.class),而字节码文件需要JVM来提供运行环境的支持。
JVM是一个软件,安装在操作系统中,是建立在操作系统之上的,为字节码文件提供运行环境,如下图:
Java官方提供了针对不同平台的JVM软件,即:不同平台的JVM是不同的。但这些JVM遵循着相同的标准,即:只要是标准的.class文件,就可以在不同的JVM上运行,而且运行的效果相同。这样,就实现了所谓的“一次编程到处使用”。如图:
Java程序遵循着先编译、后执行的原则。首先,通过javac命令将JAVA源程序(.java文件)编译为JAVA字节码(.class文件),而后,通过java命令启动JVM,由JVM来加载.class文件并运行.class文件。如图:
1.5 JDK、JRE、JVM关系
JDK(Java Development Kit)即为Java开发工具包,包含编写Java程序所必须的编译、运行等开发工具以及JRE。开发工具如:用于编译java程序的javac命令、用于启动JVM运行java程序的java命令、用于生成文档的javadoc命令以及用于打包的jar命令等。
JRE(Java Runtime Environment)即为Java运行环境,提供了运行Java应用程序所必须的软件环境,包含有Java虚拟机(JVM)和丰富的系统类库。系统类库即为java提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。
JVM(Java Virtual Machines)即为Java虚拟机,提供了字节码文件(.class)的运行环境支持。
JDK、JRE、JVM关系如图:
JDK中包含了编译、运行等开发工具及JRE,而JRE中包含了Java系统类库及JVM,运行一个java程序所需要的最小环境即为JRE,而开发一个Java程序所需要的最小环境为JDK,因为JDK中还包含了很多用到的命令。