-
基本配置
使用Eclipse开始进行开发之前,我们有必要对Eclipse本身做一些粗略的了解和配置,让我们在使用的时候更加舒畅。
-
Text File Encoding配置
Text File Encoding的配置位于:window->Preferences->General->Editors
对于默认的Text File Encoding,我们应该使用UTF-8。以避免各种不同的语言编码造成的各种问题。
-
Ant配置
Ant的配置位于:window->Preferences->Ant
一般我们会采用自己安装的Ant作为Ant的Home。因而我们只需要改变其中的Runtime配置,当然,如果需要的话,可以修改其中的Editor的某些参数。
图9
-
Java Build Path配置
Java Build Path的配置位于:
一般我们要将配置改成folder模式,并指定默认的Source folder name和Output folder name。配置完成后,每当我们新建一个新的Java项目时,会默认生成类似的目录结构,这样做的好处在于可以方便的看清楚各个目录的作用。
图10
-
Code Style配置
Code Style的配置位于:
一般会将Automatically add comments for new methods and types选项打开。
图11
-
Installed JREs 配置
Installed JREs配置位于:
Installed JREs配置主要用于在不用的JRE上进行切换,默认情况下无需配置。
图20
-
SVN配置
SVN配置位于:
SVN的配置也是可选的,由于默认情况下,SVN的配置会将一个Java文件的文件外观变得很长,所以可以根据实际情况减少一些显示内容。
-
Tomcat配置
Tomcat配置位于:
Tomcat的配置是可选的,一般我们在使用Tomcat进行调试时会用到它。
图23
附录
-
《CLASSPATH和JRE的运行机制》
-
概述
本文主要是对Java环境中的PATH,CLASSPATH的概念进行一些深入,并简单讲述一些JRE的运行机制。
Java代码的运行要依靠其运行环境(JRE)和运行环境带的基础类库,此外还会有一些第三方的类库或者自己开发的类库。我们这里说的“运行环境带的基础类库”其实只是一个jar包(其实什么东西不是jar包呢?)。这个基础类库我们可以在JDK的安装目录找到,具体来说,就是%JAVA_HOME%\jre\lib\rt.jar。打开这个jar包,我们可以发现,我们所用的所有的基础类诸如Integer,String等都在其中。而一些第三方或者自己开发的类库可以在%JAVA_HOME%\lib下面找到,诸如dt.jar, tools.jar。
Java代码在运行时,由ClassLoader负责查找和加载程序引用到的类库。而ClassLoader查找和加载程序引用到类库的依据就是PATH和CLASSPATH的设置。
-
JRE版本管理
在Java中,如果运行环境版本不一致,或者引用的类库版本不一致都会带来程序不能正常运行。比如一个Java程序是在JDK1.2上开发,如果在JRE1.4上运行,一般情况下可以向下兼容,但也有例外,有些GUI程序在JDK1.4上面运行结果很可能会不同。
在这种情况下,能够在一个机器上安装和配置多个JRE环境变得比较重要。幸运的是,Java支持这一点,并且提供了一套完整的JRE版本管理的方式。
假设一台机器上有多套JRE,每套JRE都被各自安装到不同的目录,不会互相影响。当在控制台执行java.exe,操作系统寻找JRE的方式如下:
-
先找当前目录下有没有JRE
-
再找父目录下有没有JRE
-
接着在PATH路径中找JRE
-
注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看CurrentVersion的键值指向哪个JRE
最常用的是在PATH路径中找JRE,一般情况下,自己的程序运行之前都会先在批处理文件里面临时设置PATH,把自己用的JRE放到PATH路径最前面,所以肯定会运行自己带的JRE,不会造成版本混乱。
-
JRE类库的查找方法
JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到前面提到的rt.jar中自动加载,其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被搜到。
这也就是我们设置环境变量的原因。 只有把PATH和CLASSPATH环境变量设好,OS才能通过PATH来找JRE, 确定基础类库rt.jar的位置, JRE的ClassLoader通过CLASSPATH找其它类库。
一般在生产环境下,我们会采用应用服务器自带的JRE环境和一些应用服务器厂商提供的第三方支持类,因而会编写批处理文件去设置临时的PATH和CLASSPATH。此时,我们可以通过改变加载的先后顺序决定哪些类库被加载。
-
CLASSPATH
在搞清楚JRE类库的版本管理和ClassLoader的加载方式以后,CLASSPATH的概念是比较自然的,ClassLoader通过CLASSPATH查找类库进行加载。换句通俗一点的话来说,CLASSPATH中的类是我们运行Java程序时可以引用到的类。
因而,我们可以认为,凡用Java写出来的程序,在运行时必然会依赖于它自身的CLASSPATH。
以Tomcat为例,Tomcat的本质是一个Java程序,所以我们在启动Tomcat服务器时,必然要依赖于它的CLASSPATH。Tomcat的CLASSPATH位于:%CATALINA_HOME%\common\lib下。
在我们使用Eclipse进行开发时,可以通过设置Project Build Path,将一些jar包设置为Project的CLASSPATH,给我们引用。
那么我们自己开发的普通的J2EE项目的CLASSPATH又在哪里呢?也就是说,我们自己写的一个J2EE程序,它依赖于什么运行呢?下面是一个最简单的J2EE项目的结构:
在这个结构中,WEB-INF/classes目录下的文件和WEB-INF/lib下的jar包,都是我们项目的CLASSPATH。所以,我们一般把我们项目依赖的第三方的jar包放到WEB-INF/lib下,而将我们自己编写的Java程序的编译结果放到WEB-INF/classes目录下。这样,我们的项目在发布时,就能找到自己的CLASSPATH了。
(附录文字引 用robbin的文章,特此声明)