第1章 在什么地方开发——搭建Java Web开发环境
学习指引
在进行Java Web应用开发前,需要把相应的开发环境搭建好。Java Web开发环境主要包括Java开发工具包JDK和IDE开发工具。本章将介绍如何搭建Java Web开发环境。
重点导读
• 掌握JDK的下载与安装。
• 掌握常用IDE开发工具Eclipse或IDEA的下载与安装。
1.1 Java开发工具包——JDK的下载与安装
开发Java Web应用程序前,最重要的就是搭建JDK环境,其实这也是所有Java应用程序开发的第一步。本节将详细介绍JDK及其下载与安装。
1.1.1 JDK简介
1. JDK概述
JDK(Java Development Kit,Java开发工具包)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software Development Kit)。
JDK是整个Java的核心,包括Java运行环境(Java Runtime Environment)、Java工具和Java基础的类库。不论什么Java应用服务器实质都是内置了某个版本的JDK,因此掌握JDK是学好Java的第一步。
从Sun的JDK 5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2,1.3,1.4,而是变成5.0,6.0了。从JDK 6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。
JDK本身使用Java语言编写,在下载的安装包里,有一个src.zip,里面就是JDK的源代码。
2. JDK版本
(1)J2SE(Java 2 Standard Edition,Java 2平台标准版),是人们通常使用的一个版本,从JDK 5.0开始,改名为Java SE。
(2)J2EE(Java 2 Enterpsise Edition,Java 2平台企业版),使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。
(3)J2ME(Java 2 Micro Edition,Java 2平台微型版),主要用于移动设备、嵌入式设备上的Java应用程序,从JDK 5.0开始,改名为Java ME。
本书主要使用Java EE。
3. JDK组成
JDK包含的基本组件如下。
(1)javac:编译器,将源程序转成字节码。
(2)jar:打包工具,将相关的类文件打包成一个文件。
(3)javadoc:文档生成器,从源码注释中提取文档。
(4)jdb:debugger,查错工具。
(5)java:运行编译后的Java程序(.class后缀)。
下面将讲解如何下载和安装JDK。
1.1.2 JDK的下载与安装(Windows版)
JDK的下载与安装的具体操作步骤如下。
步骤1:打开JDK下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html,找到想要下载的版本,单击Downloads选项卡下的DOWNLOAD按钮,如图1-1所示。
图1-1 JDK下载网站
步骤2:在下载页面中选择接受许可,并根据自己的系统选择对应的版本(这里以Windows系统为例),选择Accept License Agreement单选钮,单击Windows选项卡后面的选择按钮,如图1-2所示。
步骤3:下载完成后,打开安装包,根据提示单击“下一步”按钮或更改相应设置。安装进行到如图1-3所示的页面时,可以选择更改JDK的安装路径。
图1-2 JDK 10.0.1下载页面
图1-3 此时可以选择更改JDK安装路径
步骤4:JDK安装过程中会弹出JRE安装窗口,此时可以更改JRE的安装路径,建议读者将JDK和JRE共同安装在“…/Java/”目录下。单击“下一步”按钮,安装会继续进行直到安装完成,如图1-4所示。
图1-4 JRE安装窗口
步骤5:配置环境变量。
(1)在计算机桌面右击“计算机”或“我的计算机”或“此计算机”图标,在弹出的快捷菜单中依次选择“属性”→“高级系统设置”→“环境变量”选项,打开“系统变量”对话框,如图1-5所示。
(2)在“系统变量”对话框中单击“新建”或者“编辑”按钮,在“变量名”和“变量值”中依次将三个变量设置参数如下。
图1-5 “系统变量”对话框
步骤6:测试JDK是否安装成功。
(1)运行cmd命令,打开命令提示符窗口。
(2)输入命令java -version后执行,出现如图1-6所示的内容,即证明JDK版本安装正确,若提示无法执行,请检查上一个步骤的变量值是否正确。
图1-6 输入java -version,输出Java版本信息
(3)输入命令java后执行,出现如图1-7所示内容,即证明可运行Java类,再次确认安装无误。
图1-7 输入java,输出java指令用法
(4)输入命令javac后执行,出现如图1-8所示内容,即证明可以编译Java文件,JDK安装结束。
图1-8 输入javac,输出javac指令用法
1.1.3 JDK的简单使用
接下来将使用记事本来编写Java Web开发的第一个程序Hello World,具体操作如下。
(1)使用记事本新建一个文本文档,文件名为HelloWorld.java(.java为文件的扩展名)。
(2)编辑代码,代码如下。
(3)编译HelloWorld.java文件。
在Windows系统的运行栏中输入cmd打开命令提示符窗口,使用cd命令进入HelloWorld.java文件所在的路径(见图1-9)。输入javac HelloWorld.java,如果运行成功会在当前路径下生成HelloWorld.class文件,如图1-10所示。
图1-9 HelloWorld.java文件及代码
图1-10 编译成功后,相应路径会生成HelloWorld.class文件
(4)运行HelloWorld。在命令提示符中输入java HelloWorld,运行成功则会在窗口中输出HelloWorld,如图1-11所示。
图1-11 编译及运行HelloWorld程序演示
1.2 Java集成开发工具简介
集成开发环境(Integrated Development Environment,IDE)集成了代码编辑,编译,运行,输出,调试,代码自动补全,语法检查等功能。
前面的章节讲解了使用记事本来编写Java程序,因为要调用命令提示符,所以会显得比较麻烦。Java的一些集成开发工具就解决了这个问题。
Java常用开发工具主要有Eclipse、IntelliJ IDEA、MyEclipse等。
1.2.1 Eclipse简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具JDK。
Eclipse最初主要用于Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等。Eclipse本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
1.2.2 MyEclipse简介
MyEclipse是在Eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它可以在数据库和Java EE的开发、发布以及应用程序服务器的整合方面极大地提高工作效率。
1.2.3 IntelliJ IDEA简介
IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境(也可用于其他语言)。IntelliJ在业界被公认为是最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。
IntelliJ IDEA最突出的功能自然是调试(Debug),其他编辑功能抛开不看,这一点就远胜Eclipse。
首先,查看Map类型的对象,如果实现类采用的是哈希映射,则会自动过滤空的Entry实例。不像Eclipse,只能在默认的toString()方法中寻找所要的key。
其次,需要动态Evaluate一个表达式的值,比如我们得到了一个类的实例,但是并不知道它的API,可以通过Code Completion点出它所支持的方法,这一点Eclipse无法比拟。
最后,在多线程调试的情况下,Log on console的功能可以帮助用户检查多线程执行的情况。
IntelliJ IDEA本身自带了众多的功能(如GitHub的集成)。当然,在Eclipse中也可以通过选择不同版本的插件来获取到足够的功能,只是需要自己来配置这些插件。
1.2.4 Eclipse的下载与安装
Eclipse的开源性以及免费性在国内Java开发行业特别受欢迎,本书也以Eclipse开发工具为例,讲解Java Web开发的整个过程。Eclipse可以通过其官方网站http://www.eclipse.org/进行下载,这里需要注意的是Eclipse版本和JDK是有一定的版本兼容关系的,读者需要根据已安装JDK的版本下载正确的版本,具体的对照关系如表1-1所示。若读者是作为新手练习,可以考虑JDK和Eclipse都下载最新版本,以避免版本不支持的问题。本章采用当前最新版本的Eclipse下载与安装,具体的操作步骤如下。
表1-1 Eclipse和JDK版本对照表
步骤1:进入Eclipse官网http://www.eclipse.org/,如图1-12所示。
图1-12 Eclipse官网页面
步骤2:单击网页右上角的Download按钮,进入下载页面,如图1-13所示。
图1-13 Eclipse下载页面
步骤3:由于目前的操作系统版本基本都是64位,所以在这里单击页面左下角的Download 64 bit(系统版本为32位的请下载32 bit的),等待网站获取Eclipse最新版本信息以及自动分配下载结点,如图1-14所示。
图1-14 Eclipse网站自动分配下载结点
步骤4:单击页面中央的Download按钮即可进行下载。目前官网所给的下载链接是Eclipse的在线安装器,下载完成后可能需要联网安装。此处选择Eclipse IDE for Java EE Developers选项,然后等待安装自动完成即可,如图1-15所示。
图1-15 Eclipse installer界面
1.2.5 Eclipse实现的小例子
本节将通过使用Eclipse开发工具创建与运行名称为firstDemo的Java项目,并实现在终端窗口输出“Hello World!”,具体的操作步骤如下(源码\ch01\firstDemo文件夹)。
步骤1:单击File菜单,然后依次选择New→Project→Java Project按钮,打开新建Java项目向导,如图1-16所示。
图1-16 新建Java项目向导
步骤2:在Project name文本框中输入项目名称firstDemo,单击Finish按钮,即可完成firstDemo的Java项目的创建,Eclipse的Package Explore窗口如图1-17所示。
图1-17 Java项目结构
步骤3:右击src,在弹出的快捷菜单中选择New→Class菜单命令,并在弹出的New Java Class窗口的Package文本框中输入该项目包名称firstDemo,在Name文本框中输入HelloWorld,即项目主类的名称,如图1-18所示。
图1-18 New Java Class窗口
提示:勾选public static void main(String[] args)复选框,Eclipse将自动为HelloWorld.java创建main方法,代码如下。
步骤4:在main方法中输入System.out.println("Hello World!");后保存,如图1-19所示。
图1-19 完成代码的编辑
步骤5:选中该项目名称firstDemo,单击上方菜单中的Run按钮,运行项目,即可在下方的Console面板中看到输出的Hello World!,如图1-20所示。
图1-20 项目运行演示
1.3 其他常用IDE的官网地址
IntelliJ IDEA官方网站为https://www.jetbrains.com/idea/。网站上有具体的安装和使用说明,请读者自行查阅。IntelliJ IDEA简介请看1.2.3节。
MyEclipse官方中文网为http://www.myeclipsecn.com/。网站上有具体的安装和使用说明,请读者自行查阅。MyEclipse简介请看1.2.2节。
1.4 就业面试解析与技巧
Java基础知识在面试中被问到的可能性不大,但是Java基础是每个Java开发者都必须掌握的知识。Java的封装、继承、多态三大特性等基础知识读者应当重视。
1.4.1 面试解析与技巧(一)
面试官:JDK、JRE、JVM三者间有何关系?
应聘者:JDK、JRE、JVM三者间的关系如下。
(1)JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括Java运行环境JRE、Java工具和Java基础类库。
(2)JRE(Java Runtime Environment)是运行Java程序所必需的环境的集合,包含JVM标准实现及Java核心类库。
(3)JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个Java实现跨平台的最核心的部分,能够运行以Java语言编写的软件程序。
1.4.2 面试解析与技巧(二)
面试官:Java具有哪三大特性?
应聘者:Java具有三大特性:封装,继承和多态。
(1)封装。封装就是将类的信息隐藏在类内部,不允许外部程序直接访问,而是通过该类的方法实现对隐藏信息的操作和访问。
(2)继承。继承是类与类的一种关系,比较像集合中的从属于关系。子类可以获取到父类的属性和方法。在Java中是单继承的,一个子类只有一个父类。
(3)多态。Java语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。