您好,欢迎来到九壹网。
搜索
您的当前位置:首页Java环境配置

Java环境配置

来源:九壹网
初学者入门经典:Java环境配置大全

我刚学习Java的时候也被各种环境配置搞得头晕脑胀,现在把自己平时用到的整理一下,希望给大家一些帮助。

安装JDK

从http://Java.sun.com/下载jdk-1_5_0_04-windows-i586-p.exe

安装到指定路径,我选择D:\\jdk1.5.0

配置环境变量:

Java_HOME: D:\\jdk1.5.0 PATH: D:\\jdk1.5.0\\bin;

CLASSPATH: .;D:\\jdk1.5.0\\lib\ools.jar; D:\\jdk1.5.0\\jre\\lib\\rt.jar;

安装WTK

从http://Java.sun.com/下载j2me_wireless_toolkit-2_2-windows.exe

安装到指定路径,我选择D:\\WTK22

安装Eclipse

从http://www.eclipse.org/下载eclipse-SDK-3.0.1-win32.zip和

NLpack-eclipse-SDK-3.0.x-win32.zip(语言包)

解压缩eclipse-SDK-3.0.1-win32.zip即可,我的路径:D:\\MyDevelopTools\\eclipse

解压缩NLpack-eclipse-SDK-3.0.x-win32.zip,得到features和plugins两个文件夹,把里面的文件分别拷入eclipse中相应的目录下即可

安装Tomcat

从http://jakarta.apache.org/下载jakarta-tomcat-5.5.9.zip

解压缩jakarta-tomcat-5.5.9.zip即可

配置环境变量:

Tomcat_Home: D:\\MyDevelopTools\omcat-5.5.9

PATH: D:\\MyDevelopTools\omcat-5.5.9;

在eclipse中配置J2ME开发环境:

安装eclipseme:

从http://www.eclipseme.org/下载eclipseme.feature_0.9.4_site.zip,在eclipse中选择帮助-〉软件更新-〉查找并安装-〉搜索要安装的新功能部件-〉新建已归档的站点。选择eclipseme.feature_0.9.4_site.zip,打开-〉选择eclipseme.feature_0.9.4_site.zip,剩下的一直下一步就可以了。安装完成会在窗口-〉首选项中出现J2ME

修改Java-〉调试:

选中Java-〉调试,把暂挂执行的前两项点去,通信中的调试器超时改为15000

配置WTK

窗口-〉首选项-〉J2ME-〉Platform Components

右键单击对话框右侧的Wireless Toolkit,选择Add Wireless Toolkit,

选择WTK安装目录,eclipse会自动匹配。

在eclipse中配置J2EE开发环境(Tomcat5.5.9):

安装EMF-RunTime:

从http://www.eclipseme.org/下载emf-sdo-runtime-2.0.1.zip

解压缩emf-sdo-runtime-2.0.1.zip,得到features和plugins两个文件夹,把里面的文件分别拷入eclipse中相应的目录下即可。

安装Lomboz:

从http://forge.objectweb.org下载org.objectweb.lomboz_3.0.1.N20050106.zip解压缩org.objectweb.lomboz_3.0.1.N20050106.zip,得到features和plugins两个文件夹,把里面的文件分别拷入eclipse中相应的目录下。如果在窗口-〉首选项中有Lomboz选项就安装正确,如果没有,在D:\\eclipse\\configuration\\下删除org.eclipse.update这个文件夹,再重起eclipse就可以了。

配置Lomboz:

在D:\\eclipse\\plugins\\com.objectlearn.jdt.j2ee_3.0.1\\servers下新建一个文件tomcat559.server,里面的内容从tomcat50x.server全部复制过来,把name=\"Apache Tomcat v5.0.x\"替换成name=\"Apache Tomcat v5.5.9\",然后把所有的

“${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed”替换成

“${serverRootDirectory}/common/endorsed”就可以了。然后进入eclipse,窗口-〉首选项-〉Lomboz,把JDK Tools.jar改为:D:\\jdk1.5.0\\lib\ools.jar,窗口-〉首选项-〉Lomboz-〉Server Definitions,在Server types中选择Tomcat5.5.9在Application Server Directory和Classpath Variable的路径改为D:/MyDevelopTools/tomcat-5.5.9先应用,再确定就可以了。

教您如何在Linux下配置Java开发环境详述

1、去http://java.sun.com/j2se/1.4.2/download.html 下载一个Linux Platform的JDK,建议下载RPM自解压格式的(RPM in self-extracting file,j2sdk-1_4_2_06-linux-i586- rpm.bin)。

2. 上载到Linux服务器上,在shell下执行命令:

[root@LinuxServer rpm]#

chmod 755 j2sdk-1_4_2_06-linux-i586-rpm.bin [root@LinuxServer rpm]#

./j2sdk-1_4_2_06-linux-i586-rpm.bin

这时会有一段Sun的协议,敲几次空格键,当询问是否同意的时候,敲yes就可以了。

Sun Microsystems, Inc.

Binary Code License Agreement for the

JAVATM 2 SOFTWARE DEVELOPMENT KIT (J2SDK), STANDARD

EDITION, VERSION 1.4.2_X ...

Do you agree to the above license terms? [yes or no]yes Unpacking... Checksumming... 0 0

Extracting...

UnZipSFX 5.40 of 28 November 1998, by Info-ZIP (Zip-Bugs@lists.wku.edu).

inflating: j2sdk-1_4_2_06-linux-i586.rpm Done.

注: 如果直接执行unzip命令来解压也是可以的,总之得到一个rpm软件包。

3、程序会自动生成一个j2sdk-1_4_2_06-linux-i586.rpm文件,这是主程序包,下面来安装:

[root@LinuxServer rpm]#rpm -ivh j2sdk-1_4_2_06-linux-i586.rpm

Preparing... ###################### ##################### [100%] 1:j2sdk ######################## ################### [100%]

4、设置环境变量

通常都喜欢用export命令直接在shell下设置:

[root@LinuxServer rpm]#

export JAVA_HOME=/usr/java/j2sdk1.4.2_06 [root@LinuxServer rpm]#

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar: $JAVA_HOME/lib/ tools.jar

[root@LinuxServer rpm]#

export PATH=$PATH:$JAVA_HOME/bin

当然这样设置环境变量是可以生效的,但是只对当前shell生效。如果从另外一个shell登陆,将不能使用刚才设置的变量。所以最好的方法还是修改.bashr c文件。

[root@LinuxServer rpm]#vi .bashrc set JAVA_HOME=/usr/java/j2sdk1.4.2_06 export JAVA_HOME

set PATH=$PATH:$JAVA_HOME/bin export PATH

set CLASSPATH=.:$JAVA_HOME/lib/dt.jar: $JAVA_HOME/lib/tools.jar export CLASSPATH

当然也可以通过更改/etc/profile来实现,不过不推荐这么做,

因为这样的设置将对所以用户的shell都生效,对系统安全会产生影响。

就是在这个文件的最后加上:

export JAVA_HOME=/usr/java/j2sdk1.4.2_06

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar

:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

下面来验证一下变量设置是否生效(####注意:在验证前先logout一下,再重新登陆):

[root@LinuxServer rpm]# echo $JAVA_HOME

/usr/java/j2sdk1.4.2_06/ [root@LinuxServer rpm]# echo $CLASSPATH

/usr/java/j2sdk1.4.2_06/lib/dt.jar: /usr/java/j2sdk1.4.2_06/lib/tools.jar [root@LinuxServer rpm]# echo $PATH

/usr/java/j2sdk1.4.2_06/bin/:

/usr/kerberos/sbin:/usr/kerberos/bin: /usr/local/sbi n:

/usr/local/bin:/sbin:/bin:/usr/sbin: /usr/bin:/usr/X11R6/bin:/root/bin [root@LinuxServer rpm]# JAVA-version JAVA version \"1.4.2_06\"

JAVA(TM) 2 Runtime Environment,

Standard Edition (build 1.4.2_06-b03) JAVA HotSpot(TM) Client

VM (build 1.4.2_06-b03, mixed mode)

看看JDK是否能正常工作,我们来写一个测试文件test.java: 5、环境设置OK,

[root@LinuxServer rpm]#vi test.java class test {

public static void main(String[] args) {

System.out.println(\"Hello World!\");

} }

保存退出,下面来编译、执行:

[root@LinuxServer text]# javac test.java [root@LinuxServer text]# JAVA test Hello World!

好了,工作正常。

6、如果要使某个用户具有运行Java命令的权限,只要修改其bash初始化文件即可。比如要给用户longware以运行Java命令的权限:

[root@LinuxServer root]# vi /home/longware/.bashrc

set JAVA_HOME=/usr/java/j2sdk1.4.2_06 export JAVA_HOME

set PATH=$PATH:$JAVA_HOME/bin export PATH

set CLASSPATH=.:$JAVA_HOME/lib/dt.jar: $JAVA_HOME/lib/tools.jar export CLASSPATH

7、至此,Linux上JDK的安装完毕。下面安装

eclipse-SDK-3.0-linux-gtk.zip,去www.eclipse.org下载一个eclipse3.0.,将eclipse-SDK-3.0-linux-gtk.zip解压到/opt中。

8、编写一个脚本用于启动eclipse

#!/bin/bash #

# 执行 eclipse 3 #

export JAVA_HOME=/usr/java /j2sdk1.4.2_06

export CLASSPATH=/usr/java /j2sdk1.4.2_06/lib

/opt/eclipse/eclipse -vm /usr/java

/j2sdk1.4.2_06/bin/java -data /home/chenzhe/wo rkspace &

# -vm 参数用以指定使用哪一个 jvm 来执行Eclipse,

# -date参数用以指定Eclipse的数据目录。

在此指定其存在用户根目录(/home/chenzhe/)下的workspace目录中,将脚本保存到/usr

/local/bin中,叫eclipse,并给eclipse分配755权限

9、在桌面上创建一个启动器,随便选一个图标,路径设置到/opt/eclipse/eclipse,/op

t/eclipse/icon.xpm是eclipse自身带的图标.

10、双击图标,或者在终端输入eclipse, 完成!

Java开发工具Jcreator使用技巧总结

技巧1: 建立空项目进行Java编程

在进行编程的时候最好首先建立一个空项目,然后在这个空项目里,编辑自己的Java程序;其实这是一个很好的习惯,你可以在这个项目里建立你自己的包,把你所编辑的源程序程序,按功能的不同分别放进不同的包里;这样在你学习Java一定长的时间后,你就拥有了一个属于你自己的包,这对你以后学习或查相关代码就很方便。

建立空项目的方法,或许大家都知道,不过在这里我还是罗嗦一下:

按JCRETOR的菜单顺序,创建方法如下:

File——>New——>Project——>EmptyProject;

其实很简单。

技巧2: Jcretor对JDK的帮助文档提供了很好的支持

通过Jcretor你可以很方便的即时查阅JDK帮助文档!且这个功能可以实现网页直接在Jcreator的编辑窗口里显示,而不用另外打开任何浏览器进行浏览。(Jcreator的这个特点我十分喜欢,据我所知Eclipse好象没有提供这个功能),说了这么久相信大家一定会问,你这个功能到底怎么使用了?别急,马上你也会掌握这个技巧。

不知道大家是否记得在我们装完Jcreator后,第一次运行Jcreator时,系统

会要求你指定JDK的安装路径;其实如果大家记得的话,在设置好了JDK的安装路径后,还会要求你提供一个DOCS的路径。对,要的就是这个!下面让我来告诉你怎么设置这个路径:

首先,从SUN公司网站下载对应的JDK文档

其次,在JDK安装目录(如,我的安装目录为D:\\j2sdk1.4.2_06)中建立一个名为docs的文件夹,然后将所下载的JDK文档解压到刚才建立的文件夹里,解压完成后,然后在安装Jcretors时在相应地方选择刚才JDK文档所在的目录即可;(应注意的是:要保证docs文件夹下面不要再有docs文件夹)当你设置好后启动Jcreator,你是否会发现你的Jcreator有什么变化没有了?其实有的,不信你看Jcreator菜单栏中的Help下拉菜单,仔细看看是不是多了个“JDK Help

Ctrl+F1”菜单项,如果有,那么恭喜你,配置成功!下面我将告诉你怎么使用这个功能。

再次,就是使用Jcretor发挥JDK帮助文档的作用。这正是我要说的重点,让我来告诉你具体怎么使用这个功能吧。

当你在Jcreator中编写程序或看别人的原代码的时候,肯定会碰到不熟悉或不知道的类或方法,这个时候你用鼠标选中你要查询的类名或方法名,然后点击Jcretor菜单栏里的Help菜单下面的JDK Help,这时你会发现你所要查询的资料马上就在Jcreator中以网页的形式显示出来了。是不是发现很简单,是不是觉得可以跟CHM格式的JDK文档相媲美!就是这么简单!

技巧3: 这个技巧似乎和技巧2有点类似

归根揭底就是为了实现网页文件直接在Jcreator编辑窗口中显示,而免去另外打开其他浏览器工具的麻烦。其实这个功能主要是为了方便编写JAVA APPLET小程序的程序员的。

当编写好一个APPLET程序后,总要通过网页来观察程序的结果,这时用Jcretor编写一个HTML原文件并保存,这时会发现在Jcreator编辑窗口最左边的File View窗口中会出现相应的文件名,选中这个文件,单击右键再点击其中的View in Browser菜单项,不久你所选的HTML文件即在Jcretor中显示出来。用这个方法比起你用浏览器来打开这个HTML文件,是不是感觉方便多了。

Java工具包的安装配置和使用

第一步:声明本地变量 例如:class NativeHello{

public native void nativeHelloWorld(); static{

System.loodlibrary(\"nativeTest\");//调用nativeTest.dll库文件 } }

第二步:生成头文件

先用javac编译NativeHello.java,再用javah生成c的头文件.h文件

第三步:生成根文件

命令如下:javah -stubs NativeHello (生成NativeHello.c文件)

第四步:编写C程序(此处假定文件名为NativeTest.c) #include

#include //指第二步生成的.h文件 #include //指JDK的include下的文件

void Nativehello_nativeHelloWorld(struct HNativeHello *this){ ......... }/

*函数名Nativehello_nativeHelloWorld不能任意指定,可以从javah生成的头文件中查到,也可用 如下方法命名:类名_本地方法名(struct H类名 *this)*/

第五步:编译DLL文件

将nativeTest.c和NativeHello.c编译成DLL库文件,文件名与System.loodlibrary(\"nativeTest\")中的文件同名

最后讲一下测试的方法,源文件如下:

class UseNative{

public static void main(String []args){ NativeHello nh=new NativeHello(); nh.nativeHelloWorld(); } }

扩展Eclipse的Java开发工具(一)

Eclipse 的 Java 开发环境的重构(refactor)能力是它提供的最有用的特性之一。本文将向您介绍创建您自己的重构(作为 Eclipse 的自然扩展)步骤。本文所提供的解决方案的许多部分摘自最近出版的 The Java Developer's Guide to Eclipse 一书。

由于 Eclipse 具有功能强大的 Java 开发环境,这使它获得了人们的一致好评。这个 Java 开发环境(再加上团队环境和其它基础功能)使 Eclipse 成为引人注目的集成开发环境,对 Java 开发人员来说,这是个好消息。而且,Eclipse 还是一个开放源码项目。但真正使人们对 Eclipse 感到兴奋的是它提供了扩展的可能性。

许多基于 Eclipse 的商用产品都显示出这种提供集成产品的方法的实际意义。例如,IBM WebSphere Application Developer 和 Rational XDE 就说明了 Eclipse 已具有的影响。这些产品和其它基于 Eclipse 的产品降低了用户的“学习曲线”,因为它们具有类似的用户界面。当然,对于大型软件公司来说,这颇有价值,但是对于小公司或个人有什么用吗?

这正是 Eclipse 扩展性能力让人感兴趣的地方。不仅那些拥有大型开发组织的公司可以用它进行集成,任何愿意花些时间学习几个 Eclipse 框架的人也都可以利用这一能力。“哦不,”您可能在想,“别再提什么框架;我没时间学习更多框架。”不必担心;这学起来很快而且相当容易。在您的另一丝疑虑在头脑中开始形成之前,先声明一点,本文绝不是对 Eclipse 进行毫无价值的“hello world”式扩展。请放心,在如何增强 Eclipse 的 Java 开发环境的生产性使用方面,您将看到实际的价值以及一个清晰演示。您甚至还可能有点惊奇地发现:要完成某些相当令人惊异的事情,只要几十行代码就可以了。

本文将向您展示什么是可能的,从哪里开始,并将向您提供开始时需要什么的可靠评价。尽管扩展 Eclipse 是一个高级主题,但是您只要先了解如何使用 Eclipse 的 Java 开发环境就可以了。

自己轻松重构成员可视性

最初在编写代码时,我没有过多地担心将方法可视性归为 default(包)、private、public 还是 protected。在创建方法时,我使它们都为 public。只有当我最后定下了包的组织结构并完成了对方法的重构 - 不管是通过从现有代码抽取出新方法、在层次结构中上移或下移方法还是将方法整个地移至其它类中 - 我才会重新检查方法的可视性。我认为,在我知道最终类的模样并实际使用过代码之前,我不想声明我的“客户们”可能需要什么。换句话说,在共享新框架之前,必须确定什么是实现细节,什么是必需的,这样别人才能够扩展它。

如果只需在 Outline 视图、Hierarchy 视图或任何您查看方法的地方选择方法 - 然后通过单击菜单选项,就可以将一个或多个方法设置成所期望的可视性 - 那么这会非常方便。诚然,我习惯了在我使用 VisualAge for Smalltalk 那段日子里学到的这一功能。图 1 显示了对 Eclipse 的 Java 开发环境中 Java 编辑器的 Outline 视图上下文的扩展。

图 1. 对方法的上下文菜单进行的扩展

从用户的角度而言,这很巧妙,因为这是引入用户界面的很自然的方法。没有任何暗示说这些新的菜单选项不属于 Eclipse 最初的 Java 开发工具(Java Development Tool,JDT)。事实上,那就是菜单级联使用“soln”前缀的原因 - 这样您就可以分辨出它是一个扩展!而且,开发人员不必记住只有在特定视图或编辑器中才可以使用这些选项,因为只要方法显示在哪里,它们就可以在哪里显示。

简述“Hello World”

“嘿,等一下,您承诺过不会有‘Hello, World’的!”是的,但在我们开始讨论真正有趣的事情之前,确实需要先来了解一下 Eclipse 的基础。所以,如果您从未编写过自己的 Eclipse 扩展,那么请和我一起快速了解一下 Eclipse 的体系结构和插件开发环境。否则,请跳至下一节。继续这次“旅行”!

本质上,Eclipse 是一组松散绑定但互相连接的代码块。如果搞清楚这些代码块如何被“发现”,以及它们之间怎样相互发现和扩展,就能了解 Eclipse 体系结构的基本原理。

图 2. Eclipse 平台体系结构

这些功能单元称为插件。Eclipse 平台运行时(参见图 2)负责在名为 plugin.xml 的文件中查找这些插件的声明(称为插件清单),每个 plugin.xml 文件都在各插件的子目录中,这些子目录位于 Eclipse 的安装目录下名为 plugins 的公共目录(具体而言,就是 \\eclipse\\plugins)。根据这些文件,Eclipse 平台运行时就在启动时在内存中构建一个全局注册表,称为插件注册表,根据这个注册表,给定的插件就可以在运行时确定其它哪些插件希望扩展它。希望被其它插件扩展的插件将声明一个扩展点。这是插件的某种“电源板”,通过对插件声明扩展,其它插件就可以利用这个插件。

回到我们的示例,那么任务就是通过查找满足我们需要的相应扩展点来决定从哪里“插入” Eclipse。幸运的是,一旦使用 Eclipse 一段时间后,您就会知道有数量惊人的东西可以使用,尽管可能您还没有实际使用过。这是因为您在 Eclipse 用户界面所看到的与由构成 Eclipse 插件的类所建的模型通常几乎是一一对应的。图 3 使这一点更为清晰:

图 3. 视图及其模型

这里我们看到一系列普通的用户界面,右侧的是最广为人知的用户界面 - 命令提示符(Command Prompt)窗口,在其中用 dir 命令显示文件系统内容,然后是左边专门化程度较高的视图 - JDT 的 Package Explorer。从用户界面的角度来看,所有这些视图都将同一“模型”(也就是一些文件)的表示可视化。作为 Eclipse 用户,我们很自然地会希望这两个 Eclipse 视图同时向我们提供查看同一事物的不同方法:Navigator 展示了部分操作系统文件的专门化视图(Eclipse 的工作空间),而 Package Explorer 向我们展示了同样的一些文件,这些文件是用对 Java 程序员而言更自然更高效的方法组织和表示的。

通过了解 Eclipse 用户界面如何反映其底层模型,以及 Eclipse 模型如何成为相互构建的基础,这向我们提供了该如何找到“插入”我们扩展的最佳位置的重要线索。显示在视图下面的 Eclipse 接口名称 IFile 和

ICompilationUnit 就是我们可以预期从构成 Eclipse 的模型中获得的两个接口示例。由于它们通常对应于用户界面中显示的控件项,所以您已经对通过编程获得的效果有一个直观的感受。

这是我们“旅行”的第 I 部分。在第 II 部分中,我们将讨论开发解决方案。我们不打算提供这个解决方案并逐一解释,探索其中的一些奥秘,这不是更有趣吗?让我们首先讨论与以下这个问题相关的一些问题:使用我们自己的方法可视性重构能力来扩展 JDT。

把问题问在点子上比知道答案更重要

我们先探讨一些常规问题:

在用户界面中,如何显示扩展,以及显示在何处?

通常如何扩展用户界面?

对用户界面的扩展如何知道类似于“选择”这样的基本事件?

我们对基本 Eclipse 领域有了很好的了解之后,将转向一些特定于 JDT 的问题:

如何扩展 JDT 的特定元素的用户界面(象 Outline 视图中显示的成员)?扩展视图还是它们的底层模型?

Package Explorer 中显示的元素和其它视图(如 Outline 视图)中显示的相同元素之间有什么关系?我们的扩展需要知道它们之间的任何区别吗?

如何通过编程更改 JDT 模型?

怎样分析 Java 源代码以进行修改?

Java 工具完全安装手册

需要工具:包括J2SDK1.4.X,J2EE1.4.X,J2MEWTK2.1,MIDP2.0,CLDC1.1,TOMCAT5.X

系统环境:WIN2000或者WINXP 安装步骤:

1. 首先安装J2SDK1.4.X,建议安装目录C:\\J2SDK。 2. 然后安装J2EE1.4.X,建议安装目录C:\\J2EE。 3. 接下来安装J2MEWTK2.1,建议安装目录C:\\WTK20,并且把MIDP和CLDC目录拷贝到WTK20目录中。

4. 最后安装TOMCAT5.X,建议安装目录C:\\TOMCAT。 具体配置:

右键单击“我的电脑”——“属性”——“高级”——“环境变量”,新建如下内容

PATH=C:\\J2SDK\\BIN;C:\\J2EE\\BIN;C:\\WTK20\\BIN;C:\\WTK20\\MIDP\\BIN;C:\\WTK20\\MIDP\\BUILD\\WIN32\\BIN;C:\\TOMCAT\\BIN;C:\\WINDOWS;C:\\WINDOWS\\COMMAND

CLASSPATH=.;C:\\J2SDK\\LIB\\DT.JAR;C:\\J2SDK\\LIB\\TOOLS.JAR;C:\\J2SDK\\LIB;C:\\J2EE\\LIB\\J2EE.JAR;C:\\J2EE\\LIB;C:\\WTK20\\MIDP\\CLASSES;C:\\TOMCAT\\LIB JAVA_HOME=C:\\J2SDK

CATALINA_HOME=.;C:\\TOMCAT\\BIN J2EE_HOME=C:\\J2EE TOMCAT_HOME=C:\\TOMCAT

MIDP_HOME=C:\\WTK20\\MIDP

注意:等号前面为变量名,等号后面为变量值 如果是WIN2000系统,把WINDOWS改为WINNT,

最关键一点,安装完成TOMCAT后,在“开始”——“所有程序”——“管理工具”——“服务”中,找到Apache Tomcat 5.0 将其属性改为手工启动方式,如果一切正常后,可以进行如下测试

“开始”——“运行”——键入cmd回车,在出现的屏幕中键入java –version如果成功会出现版本号码,证明J2SDK安装正常,键入jspc回车,如果成功证明J2EE安装正常,键入midp回车,如果出现手机图像,证明J2ME安装正常,在IE地址栏中键入http://localhost:8080,如果出现雄猫图像,证明tomcat安装正常!

扩展Eclipse的Java开发工具(二)

在用户界面中,如何显示扩展,显示在何处?

这在很大程度上是一个温和的提示,因为我们已得到了答案。我们希望对一个或多个选中的方法显示上下文菜单选项,这些菜单选项允许我们只用一个操作就可以更改方法的可视性。我们更喜欢在可以显示方法的任何地方都能使用这些菜单选项,如在 Hierarchy 视图和 Package Explorer 中。这把我们带到下一个问题。

通常如何扩展用户界面?

通过示例来学习会更有趣,这方面 Plug-in Project 向导可以提供帮助,它提供了一些样本代码,我们可以修改这些代码来满足我们的需要。我们将回答该向导中的几个问题,它将自动启动用于插件开发的专门透视图,称为 Plug-in Development Environment(PDE),以准备测试。该向导包含了可以帮助我们入手的许多示例。事实上,我们的老朋友“Hello World”也在那里。为了沿袭这个传统,我们将生成这个“Hello World”,查看结果以验证是否正确安装了该环境,随后修改它以帮助我们回答当前的问题,并把我们带到下一个问题:对用户界面的扩展如何知道类似于“选择”这样的基本事件?这很重要,因为我们希望将我们新近引入的菜单选项应用到当前选中的方法上。

请注意,这些指示信息假定您正从全新的 Eclipse 安装开始。如果修改了该环境或更改了首选项,那么可能不会完全象如下所述那样工作。您可以考虑从全新的工作空间启动 Eclipse:打开命令提示符窗口,更改到 \\eclipse 目录,然后使用 -data 参数启动 Eclipse,如清单 1 所示。

清单 1. 启动全新的 Eclipse 实例

cd c:\\eclipse2.1\\eclipse

eclipse.exe -data workspaceDevWorks

从使用 New Plug-in Project 向导创建一个插件项目开始。选择 File > New > Project。在 New Project 对话框中,在向导列表中选择 Plug-in Development and Plug-in Project,然后选择 Next。将项目命名为 com.ibm.lab.helloworld。该向导将根据这个名称创建插件标识,所以它在系统中必须是唯一的(按惯例,项目名和插件标识相同)。使用显示在“Project contents”下面的推荐缺省工作空间位置就可以了;选择 Next。

在下一页上,选择 Next 以接受缺省插件项目结构。该插件代码生成器页推荐了许多样本,向导可以帮助您进一步对该项目进行参数化。选择“Hello, World”选项,然后选择 Next。下一页(显示在图 4 中)推荐了插件名和插件类名。这些名称基于插件项目 com.ibm.lab.helloworld 的最后一个单词。这个示例不需要任何插件类便利方法,所以取消对三个代码生成选项的选择(如图 4 所示),然后选择 Next(不是 Finish;您还有一页要完成)。

图 4. Simple Plug-in Content

您可以在下一页(显示在图 5 中)中指定参数,这些参数对于“Hello, Worlds”示例是唯一的,比如,将要显示的消息。

图 5. Sample Action Set

要简化所产生的代码,将该操作的目标包名从

com.ibm.lab.helloworld.actions 更改成 com.ibm.lab.helloworld,即与该项目的名称相同。尽管在实际的插件中,您可以选择用不同的包对相关的类进行分组,但在本例中,只有两个类,所以不必这样做。这样也遵循了“主”包名和项目名相同这个惯例。现在选择 Finish。

您应该看到一个信息消息:“Plug-ins required to compile Java classes in this plug-in are currently disabled. The wizard will enable them to avoid compile errors.”。选择 OK 继续。如果这是个全新的工作空间,那么您还将看到另一个信息消息:“This kind of project is associated with the Plug-in Development Perspective. Do you want to switch to this perspective now?”。 选择 Yes 以根据这个消息的建议进行切换。

要验证所有的东西是否都设置正确,让我们测试新插件。选择 Run > Run As > Run-Time Workbench。这将启动 Eclipse 的第二个实例,它将包含您的插件。这个新实例将创建一个新的名为 runtime-workspace 的工作空间目录,所以不必担心;对这个实例所作的任何测试都不会影响开发设置。您应该看到类似图 6 的样子,其中有一个新的下拉菜单,其标签为 Sample Menu,它有单一的选项 Sample Action。选择它将显示下面的信息消息。如果您不是从全新的工作空间启动,那么可以选择 Window > Reset Perspective 以查看新生成的下拉菜单;从现有工作空间启动时不会显示这个菜单,因为工作台“记得”上次 Eclipse 运行时哪些操作集是活动的(您还可以从 Window > Customize Perspective...下拉菜单选项上添加/删除操作集)。

图 6. Hello, Eclipse world

让我们快速浏览一下插件清单文件 plugin.xml。双击它,以在 Plug-in Manifest 编辑器中打开它。这个编辑器提供了几个类似于向导的页和一个“原始”源代码页。通过选择 Source 选项卡转到源代码页。您将看到与以下清单 2 显示的代码相似的内容;我们感兴趣的是用粗体显示的那几部分。

清单 2. 所生成的“Hello, World” plugin.xml

point=\"org.eclipse.ui.actionSets\">> label=\"Sample Action Set\" visible=\"true\"

id=\"com.ibm.lab.helloworld.actionSet\"> label=\"Sample &Menu\" id=\"sampleMenu\">

name=\"sampleGroup\">

label=\"&Sample Action\" icon=\"icons/sample.gif\"

class=\"com.ibm.lab.helloworld.SampleAction\"

tooltip=\"Hello, Eclipse world\"

menubarPath=\"sampleMenu/sampleGroup\" toolbarPath=\"sampleGroup\"

id=\"com.ibm.lab.helloworld.SampleAction\">

并不需要过于深入地研究这个代码。我们“旅行”的第 II 部分的目的只是让您熟悉一些基本机制,借此我们可以介绍 JDT 的扩展。这里,您会看到这样一种技术的一个样本:它将菜单和菜单选项作为操作集添加到工作台。它以一个用 标记声明的扩展开始。工作台用户界面插件定义了这个扩展点

org.eclipse.ui.actionSets,以及几个类似的扩展点,通过这几个扩展点可以向各种用户界面元素提供其它插件。

我们还未回答如何将菜单选项添加到 Java 方法的上下文菜单中。一个简单示例可以给我们一些提示。首先打开显示“Hello, World”消息的类

SampleAction,请注意其 run 方法。它不是特别有趣;不过我们还看到了另一个方法 selectionChanged。啊哈!下一个问题的答案有了。

对用户界面的扩展如何知道类似于“选择”这样的基本事件?

工作台“选择”更改时会告知所提供的操作(象我们提供的菜单下拉选项)。这在 selectionChanged 方法前面的 Javadoc 注释中得到了确认。让我们修改这个方法以告知有关“选择”的更多信息。首先,如果您还没有关闭工作台的运行时实例,那么现在就关闭。然后对 selectionChanged 方法添加清单 3 中的代码。

清单 3. selectionChanged 方法,首次修改

public void selectionChanged(IAction action, ISelection selection) {

System.out.println(\"==========> selectionChanged\"); System.out.println(selection); }

有了这个调试代码,我们将看到选择了什么,并了解到有关什么使 Eclipse 工作的更多信息。保存该方法,然后重新启动运行时工作台。

重要:Eclipse 有一个延迟装入的策略,以在用户执行需要插件代码的操作时才装入插件。所以您必须先选择 Sample Action 菜单选项,以在调用 selectionChanged 方法之前装入您的插件。

现在选择其它东西,如编辑器中的文本、Navigator 中的文件,当然还有

Outline 视图中的成员(回忆一下:您必须创建一个 Java 项目和示例 Java 类来做到这一点,因为运行时实例使用不同的工作空间)。清单 4 显示了您将在 Eclipse 的开发实例的控制台中看到的某个示例输出。

清单 4. selectionChanged 输出,首次修改

==========> selectionChanged

[package com.ibm.lab.soln.jdt.excerpt [in [Working copy] ChangeIMemberFlagAction.java

[in com.ibm.lab.soln.jdt.excerpt [in src [in com.ibm.lab.soln.jdt.excerpt]]]]] ==========> selectionChanged

==========> selectionChanged

org.eclipse.jface.text.TextSelection@9fca283 ==========> selectionChanged

==========> selectionChanged

[package com.ibm.lab.soln.jdt.excerpt [in [Working copy] ChangeIMemberFlagAction.java

[in com.ibm.lab.soln.jdt.excerpt [in src [in com.ibm.lab.soln.jdt.excerpt]]]]] ==========> selectionChanged

[IMember[] members [in ChangeIMemberFlagAction [in [Working copy] ChangeIMemberFlagAction.java

Java从入门到精通之工具篇

Java从入门到精通之工具篇

一、JDK (Java Development Kit)

JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

1、JDK的下载和安装

JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上

下载到,http://java.sun.com/j2se/downloads.html ,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:

http://java.sun.com/j2se/1.4.2/download.html。

下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\\Program Files\\Java\\目录下安装一套JRE(供浏览器来使用),在C:\\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\\j2sdk1.4.2\\bin。这样JDK就安装好了。

2、JDK的命令工具

JDK的最重要命令行工具: java: 启动JVM执行class javac: Java编译器 jar: Java打包工具

javadoc: Java文档生成器

这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK document.tion上有详细的文档。

二、JDK document.tion

document.tion在JDK的下载页面也有下载连接,建议同时下载

document.tion。document.tion是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个document.tion上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。

三、应用服务器(App Server)

App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:

1、Tomcat

Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:

Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:

http://jakarta.apache.org/tomcat/ ,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:http://www.apache.org/dist/jakarta/tomcat-4/binaries/ 。

下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。

需要设置两个环境变量:

JAVA_HOME=C:\\j2sdk1.4.2

CATALINA_HOME=D:\omcat4 (你的Tomcat安装目录)

这样就安装好了,启动Tomcat运行CATALINA_HOME\\bin\\startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。

Tomcat提供了两个Web界面的管理工具,URL分别是: http://localhost:8080/admin/index.jsp http://localhost:8080/manager/html

在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME\\conf\omcat-users.xml这个文件,加入如下几行:

这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。

2、BEA Weblogic

Weblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:http://commerce.bea.com/index.jsp,Weblogic的在线文档:http://edocs.bea.com/ 。

3、IBM Webshpere

到IBM的developerWorks网站可 Websphere同样可以下载到免费的试用版本,

以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www-900.ibm.com/developerWorks/cn/wsdd/ ,Websphere的下载连接:

http://www7b.software.ibm.com/wsdd/downloads/WASsupport.html 。

4、Jboss

Jboss是免费开源的App Server,可以免费的从Jboss网站下载:http://www.jboss.org/index.html,然而Jboss的文档是不免费,需要花钱购买,所以为我们学习Jboss设置了一定的障碍。在Jdon上有几篇不错的Jboss配置文档,可以用来参考:http://www.jdon.com/idea.html

四、Java应用的运行环境

Java的应用可以简单分为以下几个方面:

1、Java的桌面应用

桌面应用一般仅仅需要JRE的支持就足够了。

2、Java Web应用

Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层: Browser层:浏览器显示用户页面 Web层:运行Servlet/JSP

DB层:后端数据库,向Java程序提供数据访问服务

3、Java企业级应用

企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层: Browser层:浏览器显示用户页面

Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互

Web层:运行Servlet/JSP

EJB层:运行EJB,完成业务逻辑运算

DB层:后端数据库,向Java程序提供数据访问服务

4、Java嵌入式应用

Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。

扩展Eclipse的Java开发工具(三)

如何扩展 JDT 的特定元素的用户界面(象 Outline 视图中的成员)?扩展视图还是它们的底层模型?

简单的“Hello, World”示例显示了添加菜单选项只需要在插件清单文件中添加几行 XML()以及一个处理实际操作的类

(com.ibm.lab.helloworld.SampleAction)。向视图的下拉菜单、公共编辑器的工具栏以及弹出菜单添加操作基本上很简单。所提供的弹出菜单归结为两类:一类只与视图相关而与所选的对象无关(也就是,对视图的“空白处”单击鼠标右键通常会显示的“缺省”弹出菜单),另一类则更常见,它们与应用于所选对象的选项相关。在我们的例子中,我们希望目标只是具体选择的对象,所以通过在插件清单文件中定义一个扩展,我们将提供的操作对象提供给这些对象的弹出菜单(对下面几个标识符进行了缩写,以获得更佳的格式;用‘…’表示),如清单 8 所示。

清单 8. 修饰符操作

objectClass=\"org.eclipse.jdt.core.IMember\" id=\"...imember\"> label=\"Soln: Modifiers\" path=\"group.reorganize\" id=\"...imember.modifiers\">

label=\"Private\"

menubarPath=\"...imember.modifiers/group1\"

class=\"...jdt.excerpt.MakeIMemberPrivateAction\" id=\"...imember.makeprivate\">

label=\"Protected\"

menubarPath=\"...imember.modifiers/group1\"

class=\"...jdt.excerpt.MakeIMemberProtectedAction\" id=\"...imember.makeprotected\">

...all menu choices not shown...

扩展点命名为 org.eclipse.ui.popupMenus,顾名思义,它定义了向出现在工作台中的弹出菜单提供的对象。这个特殊示例只提供给明确选择的对象,即实现 IMember 接口的对象(请回忆一下 Java 语言规范中的定义,成员包含方法和字段)。我们的研究没有白费;我们得到了当前问题的答案,我们差不多准备好回答下一个问题了。

在这样做之前,此时请注意,我们找到的用于简单“Hello, World”操作示例的模式将对所提供的其它菜单操作进行重复。即,将把选择更改告知 class 属性中指定的类(通过其 selectionChanged 方法),并还将告知它用户何时选择菜单选项(通过其 run 方法)。我们“旅行”的用户界面部分快要结束了;更

困难的部分,也是影响我们所期望更改的部分还在前面。正如下一个问题所说的那样,在继续之前只要做一两次观察。

Package Explorer 中显示的元素和其它视图(如 Outline 视图)中显示的相同元素之间有什么关系?我们的扩展是否需要知道它们之间的任何区别?

您可能已经注意到,当您在 Outline 视图和 Hierarchy 视图中选择了一个方法时,所选对象的类并非总是相同的。例如,如果您在 Package Explorer 中展开一个库(JAR 文件)的内容,随后选择了一个类(或方法),那么它也不会是 Java 编辑器的 Outline 视图中同一选择的那个类。到底怎么回事?

这里,我们正在观察 JDT 的 Java 模型中“可编辑的”部分和始终为只读的部分之间的差别。这两部分 Java 模型都实现了公共接口(象 IMember),但是它们拥有用来理解底层的实现类是不同的。另一个示例是,有一个表示 Java 编译单元的实现类,它派生自 Package Explorer 所显示的 JAR 文件的 .class 文件,还有另一个类表示直接派生自 .java 文件的编译单元。后一个实现将允许进行一些前者所不允许的修改,而它们 API 的共享部分是由接口 ICompilationUnit 表示的。

您以前在编辑 Java 源代码时,一定会观察到:在您输入方法特征符时 Outline 视图进行了更新(如果您没有注意到,那就试一下!)。这个示例说明了 JDT 如何在不同的区域暂放其“未提交的更改”,这与处理那些已保存、编译和集成到 Java 模型中的更改不同。有些视图(象 Java 编辑器的 Outline 视图)知道未提交的更改和已提交的更改,而其它象 Navigator 这样的视图只关心已保存到文件系统的已提交更改。

随后,我们所提供的用来修改 Java 成员的操作必须(至少在某种程度上)知道在什么上下文中调用它。即,它必须识别出某些所选成员是可修改的(那些位于 Java 编辑器的 Outline 视图中的成员),而另一些成员是不可以修改的(存储在 JAR 文件中以及显示在 Package Explorer 中的 .class 文件中的成员)。记住这一点,让我们继续下一个问题。

如何通过编程更改 JDT 模型?

如果您在前面的“旅行”中稍作了研究,那么可能已经注意到 IMember、IJavaElement 以及我们的操作所看到的由所选的与 Java 相关的项实现的作为大部分接口的那部分都没有 setXXX 方法。那么如何修改这些接口呢?

您将发现这出奇地简单,不过可能在直觉上不那么明显。JDT 的 Java 模型在大多数实践情况下都是“只读”的。通过与 Java 编译器的集成协作,给定元素的底层 Java 源代码进行的更改就与 Java 模型的其余部分的更改同步了。实际上,您要做的就是更新 Java 源代码,而对模型所作的其余必要更改就传送给任何依赖它们的元素中。例如,每当 Java 源代码/Java 模型发生更改时,JDT 的索引会自动更新,所以仍旧可以快速执行搜索,重新编译从属类(按照项目特性中指定的 Java 构建路径所指示的),等等。

可以大松一口气了!以下就是 Java 模型是插件集成之关键的原因所在:Java 模型提供了整个 Java 环境的常见的内存享的模型,它的范围从一个项目,一直到其所有被引用的库,所有这些都不要您费心去操作文件系统中的 .java 文件、.class 文件以及 .jar 文件。您可以将精力集中于高级模型,而让 JDT 处理这其中的许多杂乱细节。

还不能确信它很容易?清单 9 包含了这个解决方案的核心代码的一小部

分,它是从提供操作的 run 方法上抽取出的,并出于可读性考虑,稍作了简化:

清单 9. selectionChanged 方法,小型解决方案

public void selectionChanged(IAction action, ISelection selection) {

IMember member = (IMember)

((IStructuredSelection) selection).getFirstElement(); ICompilationUnit cu = member.getCompilationUnit();

if (cu.isWorkingCopy()) {

IBuffer buffer = cu.getBuffer(); buffer.replace(...); cu.reconcile(); } }

似乎有点虎头蛇尾,不是吗?对您提供的操作提供了选中的成员,向它请求其父容器(Java .class 或 .java 文件的模型,用 JDT 的说法,全都称为编译单元),因为其父容器管理底层源代码,验证该成员是否属于“未提交的” Java 模型(换句话说,它目前在编辑器中是打开的),然后修改作为缓冲器返回的源代码。IBuffer 接口类似于 StringBuffer,其原理不同之处在于,更改与编译单元相关的缓冲区更新了 Java 模型的对应元素。对 reconcile 的最终调用告知 JDT 去通知其它相关各方(象 Package Explorer 视图):您的模型更新已准备好作为公共消费品。

您一定注意到上述代码中的省略号。在那里,您必须分析源代码本身以进行修改。同样,JDT 会提供帮助,正如我们将在下一个问题中看到的。

轻松有效检查Java代码的三个工具

Java项目最枯燥的一部分,也是程序员总是避而不谈的一部分,就是检查代码。为了区块括号、代码缩进、Javadoc注释以及命名约定而检查其他人的上千行代码的确是一件痛苦的事。更糟糕的是,通常代码的检查还受限于紧迫的项目

进度。没有足够的时间对代码的细节进行评估,因此代码检查经常变成了对代码的美化练习。不管检查者有多么好的意图,优化和逻辑检查都退居次席。

Java代码分析器减轻了这样的痛苦

在面对这种情况的时候,Java代码分析器正是对症良药。这些工具尽可能地将代码检查过程自动化。留给人工来做的就只有检查类的缺陷以及核心逻辑并确定可能的优化方法。优化(去除不必要的实例化对象、检查数据库连接是否合理、确保数据在可能的情况下被缓存)对于任何代码通常会带来性能上的极大改进。

最近我接触了各种代码分析器。我觉得一个基本的最重要的功能是与常用IDE(如NetBeans、Eclipse、jEdit以及JDeveloper)的集成。有一些代码检查工具在查找错误方面很有效,但是它们需要你根据给出的错误行的行号手工来追踪错误。这样的工具使用起来太累人了。与IDE环境集成了的工具可以大大简化这个过程,因为代码检查的结果是由所使用的IDE显示的。你只需在错误上双击就可以在Java编辑器中到达错误代码所在的行

我的试用心得

在我试用过的工具中,我发现其中三个工具十分强大并合乎与IDE集成的标准,它们是: PMD 、 Checkstyle 和 Jalopy 。

PMD和Checkstyle

根据PMD的文档,它会对代码中的如下部分进行检查:

未使用的本地变量 空的catch块 未使用参数 空if语句

重复的import语句 未使用的私有方法 可能是Singletons的类 短/长变量及方法名字 Checkstyle检查如下部分:

Javadoc注释 命名约定 标题

Import语句 体积大小 空白 修饰符 块

混合检查(包活一些有用的比如非必须的System.out和printstackTrace) 它们的作用

不像PMD,Checkstyle能够检查Javadoc注释;但是PMD提供了一项叫作CPD的很有用的功能,它检查代码的拷贝粘贴部分。我使用PMD找到的最频繁的错误是未使用的import语句,未使用的私有变量以及意外重复拼写。Checkstyle可以发现更多的错误。包括漏掉的Javadoc注释,超过80个字符的行、不合约定的变量名、用tab来代替空格等等。两个工具都允许创建自定义的规则。

如果想在你的组织中使用它们中的一个,Checkstyle似乎更好一些:它检查公司编码约定的大多数项目。如果增强代码质量是主要目标,那PMD是一个好的选择。但是如果你想要更多的功能并真正使用工具来修改代码,应该试试Jalopy。

Jalopy

Jalopy是一个易于配置的源代码格式程序,它能检测并修补Java代码中大量的习惯性缺陷。Jalopy更像一个代码整理器而不是检查器。Jalopy的插件现在已经支持大多数IDE,而且多数是无缝集成。我发现Jalopy特别强大,能够干许多很酷的事情。例如,它可以修改代码缩进、对齐括号、使行宽符合某个字符长度、插入相关的Javadoc注释以及对import语句排序。Jalopy最好的地方是超级自定义功能。一个简单的用户界面就可以让你选择Jalopy的所有功能的开关,不需要XML配置文件。

不要浪费资源

我建议大家使用这些工具来代替那些费时费力却收效甚微的人工代码检查工作。一旦使用这些工具将代码检查变成了一个相对轻松的任务,你就可以把代码检查作为一项普通工作而不是在项目结尾被进度逼得一团糟时做的事情。这些工具也提供了与Apache Ant的集成,因此你可以每天运行这些代码检查器,在编译或执行单元测试它们也能工作得很好。控制好你的代码,并交付那些你真的认为是高质量的东西。

JBuilder2005+JBOSS+Oracle9i环境配置

Borland JBuilder 是一个非常方便的Java IDE 开发工具,而JBoss 则是一个很好的开源应用服务器,Oracle 9i是优秀的企业级数据库。下面就介绍在Windows XP环境下来配置JBuilder 2005、JBoss 4.0和Oracle9i 的J2EE开发环境。

1.安装 SDK 到 D:\\j2sdk1.4.2_06;方法为:双击执行下载的 j2sdk-1_4_2_06-windows-i586-p.exe 文件,选择安装目录为 D:\\j2sdk1.4.2_06,其它默认即可。

2.安装JBOSS,方法为:将下载的 jboss-4.0.1RC1.zip 文件解压到任意一个目录,如 D:\\jboss4.0,在此文件夹下有一系列的文件和文件夹。即将 JBOSS 安装到了 D:\\jboss4.0目录中。

3、设置环境变量,在 winxp 下方法为,在桌面上右键点击“我的电脑”,选择属性,然后在弹出的页面上点“高级” -> “环境变量”,然后在弹出的页面中“系统变量”下点击“新建”,然后在弹出的窗口中“变量名 (N)” 输入“ JAVA_HOME ”,在“变量值 (V) ”一栏中输入“D:\\j2sdk1.4.2_06 ”。JBOSS_HOME 值为:D:\\jboss4.0 ,添加Path:“D:\\j2sdk1.4.2_06\\bin; D:\\jboss4.0\\bin ” 4、在JBuilder中配置JBoss,选择Tools的Config servers,然后选择JBoss3+,选中Enable server,指定Home Directory即可。

5、在JBoss中配置Oracle9i数据源并测试, Oracle以它的运行稳定和可靠成为了一个非常受欢迎的企业级数据库。要在Jboss 上配置使用Oracle的话我们要做的第一件事就是把Oracle的JDBC驱动程序复制到ClassPath下。我们把这个JDBC驱动程序(classes111.zip和classes12.zip)复制到server/default/lib目录下。为了使用Oracle的事务处理数据源我们还要把

/docs/examples/jca/oracle-xa-ds.xml复制到/server/default/deploy目录下。如果使用的事非事务处理的数据源,就把

/docs/examples/jca/oracle-ds.xml文件复制到/server/default/deploy目录下。

下一步,我们需要修改oracle-ds.xml配置文件。修改部分如下:

<datasources>

<local-tx-datasource>

<jndi-name>OracleDS</jndi-name>

<connection-url>jdbc:oracle:thin:@localhost:oradb</connection-url>

<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

<user-name>hrms</user-name>

<password>hrms</password> <exception-sorter-class-name>

org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter </exception-sorter-class-name>

<metadata>

<type-mapping>Oracle9i</type-mapping>

</metadata>

</local-tx-datasource>

</datasources>

下面就来运行JBoss测试连接数据库:

步骤如下:“jboss安装目录\\server\\default\\deploy”中新建文件夹db_test.war,在db_test.war中新建index.jsp,内容如下:

<%@ page

language=\"java\"

contentType=\"text/html; charset=gb2312\"

pageEncoding=\"GBK\" %>

<%@ page import=\"java.sql.*, javax.sql.DataSource, javax.naming.InitialContext\" %>

<h3>测试JBOSS连接Oracle 9i数据库</h3>

<h3>Test Oracle Database</h3> <%

InitialContext ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup(\"java:/OracleDS\");

Connection conn = ds.getConnection();

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(\"SELECT

TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL\");

while ( rs.next() ) {

out.println( rs.getString(1) + \"<br>\");

out.println( \"My name is Justinchen<br>\"); }

conn.close(); %>

在db_test.war中新建文件夹WEB-INF,其中有两个文件jboss-web.xml和web.xml,其中jboss-web.xml内容如下:

<jboss-web>

</jboss-web>

而web.xml内容如下:

<?xml version=\"1.0\"?>

<!DOCTYPE web-app PUBLIC

\"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN\"

\"http://java.sun.com/dtd/web-app_2_3.dtd\">

<web-app></web-app>

访问http://localhost:8080/db_test,成功后表示和数据库正常连接了。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务