103f
Java初学者 JDK命令行 路径问题
屏幕出现:
Exception in thread "main" java.lang.NoClassDefFoundError: C:\JavaTest\Hello
hello.class明明在为什么说CLASS不在,原因在CLASSPATH
1、SET CLASSPATH=、、、、
2、JAVA -CLASSPATH C:\、、、
JDK将带有空格的C:\Java Test分隔为两部分"C:\Java"及"Test\Hello.java",并将C:\Java视作为一个无效的选项了。这种情况下,我们需要将整个路径都加上双引号,即
javac "C:\Java Test\Hello.java"
这回JDK知道,引号里面的是一个完整的路径,因此就不会报错了。同样,对java命令也需要如此,即
java -classpath "C:\Java Test" Hello
Java很诱人,但对于刚跨入Java门槛的初学者来说,编译并运行一个无比简单的Java程序简直就是一个恶梦。明明程序没错,但各种各样让人摸 不着头脑的错误信息真的让你百思不得其解,许多在Java门口徘徊了很久的初学者就这样放弃了学习Java的机会,很是可惜。笔者也经历过这个无比痛苦的 阶段,感觉到编译难的问题就出在classpath的设置及对package的理解之上。本文以实例的方式,逐一解决在编译过程中所出现的各种 classpath的设置问题。本文实例运行的环境是在Windows XP + JDK 1.5.0。对其他的环境,读者应该很容易进行相应的转换。
1. 下载并安装JDK1.5.0,并按默认路径,安装到C:\Program Files\Java\jdk1.5.0中。
2. 用鼠标单击WindowsXP的“开始”->“运行”,在弹出的运行窗口中输入cmd,按确定或回车,打开一个命令行窗口。
3. 在命令行中输入:
java
有一列长长的洋文滚了出来,这是JDK告诉我们java这个命令的使用方法。其中隐含了一个重要信息,即JDK安装成功,可以在命令行中使用java此命令了。
4. 在命令行中输入
javac
屏幕显示:
&;#39;javac&;#39; 不是内部或外部命令,也不是可运行的
程序或批处理文件。
这 是由于windows找不到javac这个命令的原因。这就不明白了,java与javac都是JDK在同一个子目录里面的两个文件,为什么可以直接运行 java而不能直接运行javac呢?原来,Sun公司为了方便大家在安装完JDK后马上就可以运行Java类文件,在后台悄悄地将java命令加入了 Path的搜索路径中,因此我们可以直接运行java命令(但我们是看不到它到底是在哪设置的,无论是在用户的Path或系统的Path设置中均找不到这 个java存放的路径)。但Sun所做的到此为止,其他JDK的命令,一概不管,需要由用户自己添加到
搜索路径中。
5. 既然如此,那我们自己添加Path的搜索路径吧。对“我的电脑”按右键,选“属性”,在“系统属性”窗口中选“高级”标签,再按“环境变量”按钮,弹出一 个“环境变量”的窗口,在用户变量中新
建一个变量,变量名为“Path”,变量值为"C:\Program Files\Java\jdk1.5.0\bin;%PATH%"。最后的%PATH%的意思是说,保留原有的Path设置,且将目前的Path设置新加 到其前面。一路按“确定”退出(共有3次)。关掉原来的命令行窗口,依照第2步,重新打开一个新的命令行窗口。在此窗口中输入
javac
长长的洋文又出现了,这回是介绍javac的用法。设置成功。
6. So far so good. 到目前为止,我们已经可以编程了。但是,这不是一个好办法。因为随着以后我们深入
学习Java,我们就会用到JUnit、Ant或NetBeans等应用 工具,这些工具在安装时,都需要一个名为指向JDK路径的“JAVA_HOME”的环境变量,否则就安装不了。因此,我们需要改进第5步,为以后作好准 备。依照第5步,弹出“环境变量”的窗口,在用户变量中新建一个变量,变量名为“JAVA_HOME”,变量值为"C:\Program Files\Java\jdk1.5.0"。注意,这里的变量值只到jdk1.5.0,不能延伸到bin中。确定后,返回“环境变量”的窗口,双击