4.1 编写Java程序
4.1.1 验证JRE类路径变量
如果用户是第一次使用JDT,那么首先得验证是否为Java开发正确地设置了Eclipse工作台。
注意
至于JRE的安装请参考第2章的相关内容。
检验是否正确设置JRE类路径的步骤如下。
1在Eclipse工作台的菜单栏中选择【窗口→首选项…】命令,打开“首选项”窗口,在左边的目录树中选择【Java→已安装JRE】选项,对应右边的窗口中就会显示已经安装的Java运行时环境及版本,如图4-1所示。
图4-1 已安装的JRE
注意
建议使用JDK,而不是JRE,因为JDK是为开发设计的,包含了JRE,而且简化了调试。
2 继续在图4-1所示左边目录树中选择【常规→工作空间】选项,在对应右边的窗口中选择“自动构建”选项,如图4-2所示。
图4-2 选择“自动构建”
3还要在图4-2所示的左边目录树中选择【Java→构建路径】选项,对应右边将弹出构建路径窗口,在“源和输出文件夹”组中确保“项目”被选中,如图4-3所示。
图4-3 新建项目的构建路径
经过以上几步设置后,Eclipse的JDT开发环境创建完毕。
4.1.2 创建一个新的Java项目
本节将通过创建一个Java项目,介绍JDT的基本功能和使用方法。
Java项目包含用于构建Java程序的源代码和相关文件。它有一个相关联的Java构建器,在更改Java源文件时,Java构建器可以对这些Java源文件进行增量编译。
Java项目还维护其内容的模型。此模型包含关于Java元素的类型层次结构、引用和声明的信息。当用户更改Java源代码时,此信息会不断地自动更新。内部Java项目模型的更新与Java构建器无关,尤其是在执行代码修改时,即使关闭了自动构建,模型也仍然反映最新的项目内容。
在Eclipse平台中可以使用两种方法来建立Java项目:
(1)将Java项目作为Java包的容器。在这种形式中,所有的Java包都是直接在项目中创建的,生成的.class文件将与Java源文件保存在一起。
注意
这种方法也是系统默认的方式。
(2)使用源文件夹作为Java包的容器。在这种组织形式中,包不是在项目而是在源文件夹里创建的。将源文件夹作为项目的子目录,然后就可以在源文件夹中创建自己的包。
注意
可以在如图4-3所示的窗口中改变默认的组织形式。
下面来看怎样创建Java项目。
(1)在Eclipse工作台的菜单栏中选择【文件→新建→项目…】命令,在打开的“新建项目”的向导中选择“Java项目”,如图4-4所示。
图4-4 新建Java项目
(2)单击【下一步】按钮,将会弹出如图4-5所示的对话框。在项目名里输入“Chapter04”。
图4-5 建立Chapter04项目
注意“项目布局”这一项,如果选择“使用项目文件夹作为源文件和类文件的根目录”,那么项目的组织形式就是前面介绍的两种形式中的第一种;如果选择了“创建单独的源文件夹和输出文件夹”这一项,则对应的组织形式就是第二种。
(3)接下来有两种选择,一种是直接单击【完成】按钮来完成Java项目的建立。另一种是单击【下一步】按钮进一步设置该待创建的项目。
(4)单击【下一步】按钮,将会弹出如图4-6所示的窗口。
图4-6 项目设置
在该窗口中有4个选项卡,分别为“源代码”、“项目”、“库”和“排序和导出”。
“源代码”选项卡可以设置其他的源文件夹和默认输出文件夹。
“项目”选项卡可以设置是否把其他项目加入到该项目的构建路径。如果该项目依赖其他项目,那么这项必须选择。
“库”选项卡可以将其他的JAR文件和类文件夹添加到该项目的构建路径。仅当项目需要其他库时才使用这些选项。
“排序和导出”选项卡通过使用【上移】和【下移】按钮来改变该项目在项目构建路径中的次序。
都设置好后,单击【完成】按钮,此时在Eclipse的“包资源管理器”视图中便可以看到刚才创建的项目“Chapter04”,而且相关的JDK的包也包含进去了,如图4-7所示。
图4-7 包资源管理器中的项目
至此,一个基本的Java项目创建完毕。
4.1.3 编写Java类代码
类是Java中最基本的概念,Java把所有的内容都看成类的一个对象,要进行Java程序的编写,首先要创建一个类。在Eclipse里,创建一个类是十分方便的事。
类是包含于一个项目之中的,所以只能在某个项目下创建类。下面来看一下类的创建过程。
(1)首先选择一个Java项目(例如,项目Chapter04),右击该项目,在下拉菜单中选择【新建→类】命令,弹出如图4-8所示的“新建Java类”窗口。在该窗口中,可以对要新建的类进行一些设置,比如包、修饰符、超类、接口和要创建的方法存根等。在“名称”字段中为要新建的类取名为“StringsDemo”,然后单击【完成】按钮,一个类就建成了。
图4-8 创建“StringsDemo”类
注意
系统不建议使用默认的包,也就是不建议将要创建的类放入默认的包中。用户可以先创建一个包,然后再创建类。
(2)StringsDemo类创建好后,在“包资源管理器”视图中将会出现该类的名称,同时Eclipse将在编辑器区域中用默认的Java编辑器打开该类,如图4-9所示。
图4-9 类StringsDemo显示在Eclipse平台中
StringsDemo类自动加载了一些代码,这些基本代码系统已经帮你完成了,这样大大节省了程序员的时间。
知识:
以此类推,像项目中的包、接口、枚举、注释、源文件夹等都是像创建Java类一样创建的。
接下来在Java编辑器中为StringsDemo类添加如下一段代码,主要实现了将某一字符串按倒序打印出来的功能。
public class StringsDemo { /** * @param args */ public static void main(String[] args) { String p="a b c d e"; int len=p.length();//获得字符串的长度 StringBuffer sb=new StringBuffer(len);//读取输入 for (int i=(len-1);i>=0;i--){ sb.append(p.charAt(i)); } System.out.println(sb.toString()); } }
在编写Java类代码时,Eclipse提供了许多周到的服务。例如,方法中的小括号和大括号的自动对齐等,另外还可以用到Eclipse自带的帮助功能。这些都给程序员带来了极大的帮助,下面将一一介绍。
1.语法的高亮显示
在编辑Java源代码时,类的元素将使用独特的颜色显示。这样使程序员从视觉上给出分界线,不易混淆。以不同颜色显示Java元素的示例有:常规注释、Javadoc注释、关键字和字符串。
知识:
Java语言中的保留字默认设置都是深棕色粗体显示的。
2.显示错误
在实际工作中,编写的代码不可能一次就编译成功,这就需要Eclipse提供查看错误的功能。工作台提供了不同的方法来查看错误和警告信息。
· Java视图(如包资源管理器)中的错误标记。
· 编辑器中的标记注释。
· 在问题视图中显示出错的信息。
· 在任务视图中显示的任务。
例如,在StringsDemo类中故意加入一处错误,看看Eclipse是怎样发现这些错误并提示给用户的。随便去掉StringsDemo.java中某处代码后的分号,例如:
sb.append(p.charAt(i))
这是个很简单的错误,现在看看Eclipse做出了什么反应,如图4-10所示。
图4-10 错误提示
显然这样智能化的实时帮助将使代码编写过程中出现的问题降到最少。
注意
将鼠标箭头移到编辑器的左边或右边的错误标记处,直到鼠标变成手形,即可弹出一个信息提示框,显示错误的原因,方便了编程人员的修改。
3.代码辅助功能。
对于Java中的包和类库,在代码编写的过程中,系统将随时根据输入显示建议列表供用户选择,此功能对于提高编程速度和代码准确性有很大的帮助。如图4-11所示为在输入“System.”时屏幕的提示,用户选择好对应的包或者类后,按回车键确认即可完成输入。
图4-11 代码辅助功能
4.1.4 创建和查看Javadoc文档
JDT使用Javadoc命令根据源文件来生成Javadoc文档。在创建Javadoc文档之前,一定要设置Javadoc命令的位置。可以通过以下步骤来设置:
1在Eclipse工作台的菜单栏中选择【项目→生成Javadoc…】命令,将弹出如图4-12所示的对话框。
图4-12 Javadoc的生成
在该对话框中,用户可以在“Javadoc命令”字段中输入Javadoc启动命令的绝对路径。还有几个字段需要用户选择,用户可以根据自己的需要做出选择,这里建议大家使用默认值。
2单击【下一步】按钮,将跳转到如图4-13所示的窗口,选择需要生成Javadoc文档的元素。在“基本选项”列表中,用户可以根据需要选择,默认是全选的。
图4-13 配置Javadoc
3单击【下一步】按钮,将跳转到如图4-14所示的对话框,在该对话框中可以在文本区域内设置Javadoc的参数。
图4-14 设置Javadoc的自变量
最后单击【完成】按钮,完成对Javadoc的创建。
再回到Java编辑器中,将光标移动到想要查看的元素上,就会显示出该元素的信息,如图4-15所示。
图4-15 显示Javadoc信息
注意
Javadoc文档生成后,在“包资源管理器”视图中对应的项目目录下,将会多出“doc”和“doc.resources”两个包。
同时,在“Javadoc”视图中也可以查看该元素的信息。还有一种方法就是利用外部浏览器查看Javadoc,在菜单栏中选择【浏览→打开外部的Javadoc】命令即可(或使用快捷键Shift+F2)。