作者注:本文是本人学习java一个记录,或许对象俺这样的菜鸟有一点点帮助。,对高手可能只是垃圾,就不必看了。
某天,为形式所迫(实际上是老板所迫),俺也得开始学习java了。学习的短期目标,一是可以使用jsp或java beans连接操作数据库(sybase),二是使用java开发一个可以绘制曲线图、柱状图、表格形的方块图的控件。长期目标就是——不再是java方面的菜鸟^_^。
1. 准备阶段
a) jdk的下载与安装
学习java的第一步当然是搞一个jdk来,从sun的网站上下了一个包含netbeans3.5.1的安装包(j2sdk-1_4_2-nb-3_5_1-bin-windows.exe)。直接双击安装,使用默认路径安装在了C:\Program Files\j2sdk_nb下,这样设置环境变量java_home的时候就需要输入C:\Program Files\j2sdk_nb\j2sdk1.4.2,有点长,所以后来被某高手进行了严厉的批评。
安装好jdk之后,进行三个环境变量(java_home,classpath,path)的设置,俺用的是win2k,估计以后用9x的可能性也不大,所以只记下2k的设置方法:右击我的电脑,点属性,选择高级页,点环境变量按钮,ok,可以设了。原来是没有java_home和classpath,需要新建,分别对应值如下:
java_home=C:\Program Files\j2sdk_nb\j2sdk1.4.2 (强烈建议各位和我一样的菜鸟不要用默认路径安装);
classpath=C:\Program Files\j2sdk_nb\j2sdk1.4.2\lib\tools.jar; C:\Program Files\j2sdk_nb
\j2sdk1.4.2\lib\dt.jar (建议同上,另外后面还有补充);
另外需要在path后面增加C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin ,这样就可以在命令行上使用jdk带的javac、java等工具,如果从来不用命令行工具,不设应该也可以吧(?)。不过为了表示专业,还是设置一下为好。
Ok,windows系统就是操作简单,jdk就这样安装完了。
b) 选择开发工具
工欲善其事,必先利其器。jdk环境装好了,接下来应该选择一个合手的开发工具。我曾经雄心勃勃的要用记事本来写java程序,觉得这样学习起来比较纯净。后来放弃了,因为两方面,一是没有自动缩进功能,而是没有自动完成功能。现在的人都已经被各种集成开发环境惯坏了。
首先看到了旁边某高手正在使用的Eclipse,以前也有所耳闻。赶紧拷贝过来安装,解压后发现是不用安装的^_^。发送一个快捷方式到桌面上,ok,启动……啊,是e文的。俺四级是过了,不过那是n年前的事了。为了保证进度,先放弃。
然后发现了安装jdk时同时装好的netbeans,当时安装的时候是没有注意到的,还想这个jdk包怎么这么大(90多m)。上netbeans的官方站点(www.netbeans.org)了解了一下,官方站点还有中文版。知道它是sun主推的java ide(要不怎么和jdk捆绑在一起),本身就是由java开发的,最新版本是3.5.1,功能很齐全。双击启动花了一点时间(慢啊),然后又在线更新,终于可以用了。
界面看起来还是比较清楚的。比较喜欢的是它的文件系统的管理,可以直接挂接本地任意目录到文件系统中来。另外它的程序的执行不需要配置,直接就可以用。不论是主类,jsp(内嵌了tomcat4.0.6),还是applet,点击运行按钮都可以迅速被运行。这点很重要,尤其对于刚开始不懂classpath为何物的俺来说。
利器已经准备好了,可以开始第一个java程序了。(本来是应该记录安装tomcat的,而且都下好了(4.1.27版本),也装好了(直接解压便可^_^)。不过既然netbeans已经带了,就不费事了,虽然版本略低,对俺应该够用了。)
c) 第一个程序
第一个程序总是从Hello World开始。对我来说,Hello World程序如果运行成功,也就意味着整个的准备工作圆满结束。
在netbean中新建一个类hello,编写代码。
/**
* hello.java
* @author Aberlee
* Date: 2003-11-01
* Time: 09:09:33
* Email: aberlee@msn.com
*/
public class hello {
public static void main(String args[]) {
System.out.println("Hello world!");
}
}
在此之前,我已经了解了,java之中“一切皆是对象”,所有的java程序都是由一个或者多个class组成。一个能运行的class,必须是public的,必须包含main函数,main函数也必须是public和static的,以及java向控制台输出字符的语句是System.out.println()。
点击运行,在netbeans下面的运行窗口成功打印出了“Hello World!”语句。顺利啊,大功告成,以前还对java有偏见,就是因为偶尔写个Hello World试试,经常通不过,要不就是通过了编译不能运行。打开控制台试试。转到源代码当前目录,敲入:
java hello (enter)
预料中的Hello World并没有出现,以前经常看到的错误却又出现了。
Exception in thread "main" java.lang.NoClassDefFoundError: hello
以前只是偶尔玩一下,遇到问题就丢一边不管了,现在却必须得解决它。看看源代码,和书上的一模一样,即使是书错了也应该不会错在这个程序上吧。而且在netbeans中明明是好的。看NoClassDefFoundError这个单词,好像是找不到这个class的原因。联想起linux中运行某个文件时即使是当前目录文件也要加./,例如./install.pl。我想错误的原因也许和classpath有关,而netbeans中未报错是因为它有自己的类路径设置(打开netbeans选项看一下,的确如此,而且还有很多个类路径选项)。那么可以使用java的参数-classpath试一试。
java –classpath . hello (注意有个点,这个点代表当前路径)
哈哈,终于运行成功了,看来的确是这方面的问题。现在把当前路径也加到系统的classpath环境变量中,以后运行就不用每次都敲参数了。
classpath=.;C:\Program Files\j2sdk_nb\j2sdk1.4.2\lib\tools.jar; C:\Program Files\j2sdk_nb
\j2sdk1.4.2\lib\dt.jar (上面提过这有补充的^_^)
准备阶段结束了,接下来应该开始真正的java学习了。