我们原 先设定的Path变量,将其值修改为“%JAVA_HOME%\bin;%PATH%”。这种效果与第5步是完全一样的,只不过多了一个 JAVA_HOME的变量。这样,以后当我们需要指向JDK的路径时,只需要加入“%JAVA_HOME%”就行了。至此,Path路径全部设置完毕。一 路确定退出,打开新的命令行窗口,输入
javac
如果长长的洋文出现,Path已经设置正确,一切正常。如果不是,请仔细检查本步骤是否完全设置正确。
7. 开始编程。在C盘的根目录中新建一个子目录,名为“JavaTest”,以作为存放Java源代码的地方。打开XP中的记事本,先将其保存到 JavaTest文件夹中,在“文件名”文本框中输入"Hello.java"。注意,在文件名的前后各加上一个双引号,否则,记事本就会将其存 为"Hello.java.txt"的文本文件。然后输入以下代码:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world");
}
}
再次保存文件。
8. 在命令行窗口中输入
cd C:\JavaTest
将当前路径转入JavaTest中。然后,输入
javac Hello.java
JDK 就在JavaTest文件夹中编译生成一个Hello.class的类文件。如果出现“1 error”或“XX errors”的字样,说明是
源代码的输入有误,请根据出错提示,仔细地按第7步的代码找出并修正错误。请读者注意甄别代码输入有误的问题与 classpath设置有误的问题。因为本文是
103f
关于如何正确设置classpath及package的,因此,这里假设读者输入的代码准确无误。到目前为 此,由于我们是在源代码的当前路径下编译,因此,不会出现classpath设置有误的
问题。
9. 在命令行窗口中输入
java Hello
屏幕出现了
Hello world
成功了,
我们已经顺利地编译及运行了第一个Java程序。
但 是,第8步及第9步是不完美的,因为我们是在JavaTest这个存放源码的文件夹中进行编译及运行的,因此,一些非常重要的问题并没有暴露出来。实际 上,第8步的“javac Hello.java”及第9步的“java Hello”涉及到两个问题,一是操作
系统如何寻找“javac”及“java”等命令,二是操作系统如何寻找“Hello.java”及 “Hello.class”这些用户自己创建的文件。对于“javac”及“java”等命令,由于它们均是可执行文件,操作系统就会依据我们在第6步中 设置好的Path路径中去寻找。而对于“Hello.java”及“Hello.class”这些文件,Path的设置不起作用。由于我们是在当前工作路 径中工作,java及javac会在当前
工作路径中寻找相应的java文件(class文件的寻找比较特殊,详见第11步),
因此一切正常。下面我们开始人为地将问题复杂化,在非当前工作路径中编译及运行,看看结果如何。
10. 在命令行窗口中输入
cd C:
转入到C盘根目录上,当前路径离开了存放源码的工作区。输入
javac Hello.java
屏幕出现:
error: cannot read: Hello.java
1 error
找不到Hello.java了。我们要给它指定一个路径,告诉它到C:\JavaTest去找Hello.java文件。输入
javac C:\JavaTest\Hello.java
OK,这回不报错了,编译成功。
11. 输入
java C:\JavaTest\Hello
这回屏幕出现:
Exception in thread "main" java.lang.NoClassDefFoundError: C:\
JavaTest\Hello
意 思为在“C:\JavaTest\Hello”找不到类的定义。明明C:\JavaTest\Hello是一个.class文件,为什么就找不到呢?原 来,Java对待.java文件与.class文件是有区别的。对.java文件可以直接指定路径给它,而java命令所需的.class文件不能出现扩 展名,也不能指定额外的路径给它。
那么,如何指定路径呢?对于Java所需的.class文件,必须通过classpath来指定。
12. 依照第5步,弹出“环境变量”窗口,在用户变量中新建一个变量,变量名为“classpath”,变量值为"C:\JavaTest"。一路按“确定”退出。关闭