Java咖啡馆(2)——第一杯咖啡
    
    
    
    
作者:Gary Chan

  很多人想学习Java编程,但是不知道如何跨出第一步。在这个Java咖啡馆中,让我们手把手,从零学起。

序言


  2004年4月2日,微软和Sun公司突然宣布,微软以19.5亿美元的代价与Sun化干戈为玉帛,以平息Sun公司针对微软的反托拉斯诉讼和专利诉求。同时,还与Sun公司达成一项期限长达10年的协议,相互分享专利技术,并且彼此承诺十年不与对方互讼。

  新闻发布会上,Sun CEO斯科特·麦克尼利(Scott McNealy)还赠给微软CEO斯蒂夫·鲍尔默(Steve Ballmer)一件底特律红翼队的运动衣,一个和平的标志。尽管他们摆出优雅的姿势照相,似乎仍然抑制不住复杂的心情。两个积怨已深的对手能够坐下来友好谈话,原因很简单:地平线上出现了更危险的共同威胁——Linux和IBM。

  Sun公司是Java的发明人,但IBM却是Java最大的受益者。是IBM抢占了利润丰厚的应用服务器市场的头把交椅;是IBM的WebSphere开发工具最受Java开发者青睐;是IBM把自己的开发工具叫做Eclipse(Eclipse的中文意思是日蚀,Sun不怒才怪);是IBM在Java技术上投入最多的金钱,拥有最大的影响力和最好的开发者社区。Sun早已坐不稳老大的位子了。此外,随着与SCO之间的出色诉讼,IBM重新登上开放源代码运动的领军宝座。而开放源代码的Linux逐步走强,又使得Sun无法阻止用户从Solaris这样有版权的Unix操作系统转向开放源代码的Linux操作系统。微软也一样被IBM和Linux郁闷着。敌人的敌人就是我的朋友,简单的逻辑促使了这两个惯于互相掐架的公司结成联盟。

  虽然天下三分群雄割据,对于Java技术,不啻是个契机。按照合约,Sun已经同意延长微软Java虚拟机的授权,最终期限将延迟到2007年12月31日。目前,最终用户的Java虚拟机的安装率是70%~80%,远比Macromedia公司Flash技术98%的安装率低得多,这和微软原先在Java虚拟机的问题上反反复复蹂躏政策不无关系。而这次合作,终于让用户及Java开发者吃了一颗定心丸(笔者个人认为,只要Java还有一口气尚存,Flash想成为丰富客户端技术的标准就决不可能)。其次,微软的.net技术和Java技术之间的对抗变得友好起来,更好的交互性,使得双方都可以从这个联盟中受益。最后,Sun和IBM都是Java技术的强势拥护者,跟着蓝色巨人,没错的。

  这出西洋“三国演义”会怎么唱呢?让我们拭目以待。

搭建Java开发环境


  为了品尝第一杯Java咖啡,仅仅需要:

  J2SE SDK,即Java 2平台标准版软件开发包(Java 2 Platform Standard
 Edition SDK)。
  一个文本编辑器,比如Windows“附件”里面的“记事本”即可。

  1.J2SE 1.4 SDK

  J2SE是Java技术的基石,就像用电脑需要有电才行。撰写Java程序,需要J2SE的
SDK。SDK是Software Development Kit的缩写,即软件开发包。你可以从
[url]http://java.sun.com/j2se/1.4.2/download.html[/url]下载J2SE 1.4.2 SDK。
注意,应该下载“J2SE v 1.4.2_04 SDK”(其中“1.4.2_04”是版本号,可能由于
时间的变化而改变),而不是“J2SE v 1.4.2_04 JRE ”或其他。JRE是Java 
Runtime Environment的缩写,即运行时环境,安装JRE才能在Windows、 Linux以及
Solaris系统上面运行Java程序,但JRE无法进行Java开发。实际上,SDK包含了JRE,
所以只要下载SDK即可。在Java咖啡馆中我们将在Windows上讲述Java的开发技术,
所以在接受协议后,下载约49.36MB的“Windows Offline Installation, 
Multi-language”即可。

  下载完毕后双击安装程序,过程与安装普通应用程序没有区别。

黄糖故事


  J2SE SDK的由来

  在安装时,我们可以看到,J2SE安装程序中标志着“1.4.2”的版本字样,明明是
Java 1,为什么要叫做Java 2呢?Sun早在1995年便推出了Java技术。最早的开发包
叫做JDK,1996年发布了JDK 1.0,1997年发布了JDK 1.1,1998年又发布了
JDK 1.2。考虑到市场营销以及对自己技术的自信,Sun在JDK 1.2发布以后便把Java
改名为Java 2,JDK改名为Java 2 SDK,版本号是用来标识Java 2技术的,而不是
SDK的版本。我们这里使用的是成熟的J2SE 1.4技术,所以使用J2SE 1.4 SDK。其他
还有J2EE SDK和J2ME SDK等等,分别针对企业应用和嵌入式系统,它们都以J2SE 
SDK为基础。今年夏天,Sun还将推出代号为“Tiger”的J2SE 1.5 SDK,增加了许多
关键的特性,备受瞩目与期待。
 
安装程序结束以后,需要我们更新环境变量。虽然可以省去此步,但还是建议设置一下,
避免在使用Java命令时不得不加入长长的路径前缀。方法如下:在Windows中,
按下Win+Break组合键打开“系统属性”对话框,选择“高级”页面,修改系统变量里
面的Path变量,在最后加上J2SE SDK\bin目录的路径,默认的应为
“C:\j2sdk1.4.2_04\bin”,注意多个路径间要用分号分隔(见图1)。
Java咖啡馆(2)——第一杯咖啡_第1张图片

  完成后保存退出。现在打开“命令提示符”窗口,随便进入某个目录,输入
“java -version”命令,如果看到如图2所示的结果,说明已经设置正确了。

Java咖啡馆(2)——第一杯咖啡_第2张图片

  2.记事本

  品尝第一杯咖啡,用“记事本”就够了。

  创建第一个Java应用程序

  约定俗成,让我们创建“Hello world!”程序。

黄糖故事


  为什么编程都会从“Hello world!”开始

  “Hello World!”程序是一个只在电脑屏幕上打印出“Hello  World!”
(“你好,世界!”)字符串的电脑程序。该程序通常是电脑程序设计语言的初学者所要
学习编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境以及运行环境
已经安装完成。

  将“Hello World!”程序作为第一个编写的程序,现在已经成为一种珍贵的传统。
该程序最早出现在由Brian Kernighan和Dennis Ritchie编写的《C编程语言》一书中。
《C编程语言》是最权威的C语言教科书,两位作者正是大名鼎鼎的C语言发明人,昵称
“K&R”。

  当然,开发者中不乏“叛逆者”,喜欢“Hello”其他东西。无论如何,把
“Hello world!”作为第一个程序,决不会有离经叛道之嫌^_^。
 
要创建这样一个程序,具体的过程如下:
  (1)创建Java源程序

  Java源程序一般用JAVA作为扩展名,是一个文本文件,用Java语言写成,可以用
任何文本编辑器创建与编辑。

  (2)把源程序编译成Java字节码(bytecode)文件

  Java编译器,“javac”,读取你的Java源程序并翻译成Java虚拟机能够明白的
指令集合,且以字节码的形式保存在文件中。通常,字节码文件以CLASS作为扩展名。

  (3)运行字节码文件

  Java解释器将充当Java虚拟机的角色。Java解释器读取字节码,取出指令并且翻译
成计算机能执行的代码,完成运行过程。

  从图3中很容易看出为什么字节码很酷。你一定听过Java技术“一次编写,随处运行
”的口号吧?与VC、Delphi等语言把源程序编译成特定平台的指令集不同,Java编译器
把Java源程序编译成与平台无关的字节码,运行时,由Java解释器来翻译成不同平台的
目标代码后执行。这好比国家领导人在国际大会上用一种语言发言,由若干同声翻译分别
翻译成不同的外语,从而“只说一遍,大家明白”。同理,无论你的系统是Windows、
UNIX、MacOS或者是用IE浏览器,只要安装了Java虚拟机,都可运行。

Java咖啡馆(2)——第一杯咖啡_第3张图片

  1.创建Java源程序

  打开“记事本”,按照图4内容输入6行源程序。

Java咖啡馆(2)——第一杯咖啡_第4张图片

   小提示:这个程序定义了一个名为HelloWorldApp的对象,对象有一个名为main的
方法,用来打印“Hello World!”字样。习惯上,Java程序采取缩进,即按照模块使用
长短不一的空格。这样,很容易看出第二行到第五行代码讲的是同一个东西,描述了main
方法。其中,第三、第四行又有缩进,它们是main方法的具体实现。使用缩进,阅读起
来一目了然。

  进入“资源管理器”,在C盘根目录下面建立一个名为“JavaBar”的文件夹(以后
我们都用这个文件夹来讲解),由于这是第二讲,所以在其中再建立一个名为“Cha 02”
的子目录。

  现在回到“记事本”程序,按下“文件”菜单的“保存”项,进入“C:\JavaBar\
Cha 02”,在文件名编辑框中输入“HelloWorldApp.java”,同样必须注意大小写。

  2.编译源程序

  打开“命令提示符”窗口,进入“C:\JavaBar\Cha 02”,输入“dir”命令,
你会看到“HelloWorldApp.java”。

  编译Java源程序,使用的是“javac”命令:

  javac HelloWorldApp.java

  如果没有得到任何提示,说明编译正确通过了。现在查看一下当前目录,就会看到
HelloWorldApp.java及HelloWorldApp.class两个文件。其中
HelloWorldApp.class就是那个很酷的字节码文件,在Linux或是MacOS上都能够执行。
 

  如果遇到了错误,请仔细对照源代码检查拼写以及大小写,重新保存并编译,
相信很快就能自行解决。

  3.运行程序

  在“命令行提示符”窗口中输入“java HelloWorldApp”(注意大小写),如果
运行成功,那么恭喜你,你已经向Java世界打了第一个招呼!

  Just Do It

  Java能够完美支持多国语言。如何打印中文字符串“你好,电脑爱好者!”呢?
想一想,并且动手试一试。

  下一讲,让我们使用源自IBM的高级开发工具Eclipse进行Java的开发,体验一下
什么才是地地道道的Java开发!