java CLASSPATH环境变量的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 14:50:15
遇到一个怎么都不明白的问题。

我把CLASSPATH环境变量设置为 .;D:\Java\Java , 我在D:\Java\Java目录下中放有 MyFirstJava.java 文件。

在cmd中检测java -version 正常。
然而,在C:\下输入 javac MyFirstJava.java 后提示 : 错误: 无法读取: MyFirstJava.java
在D:\Java\Java 下输入 javac MyFirstJava.java 后正常编译并在D:\Java\Java下生成MyFirstJava.class

之后 在C:\下输入 java MyFirstJava 后提示:Exception in thread "main" java.lang.NoClassDefFoundError: MyFirstJava
在D:\Java\Java 下输入 javac MyFirstJava后正常运行

我不明白的是为什么会这样呢?我不是已经在CLASSPATH环境变量中设置了D:\Java\Java这个目录了吗?运行时在当前目录下找不到他不是会去D:\Java\Java下面找.class吗?但为什么还会有错误提示呢?

这里就关系到两个不同区域的问题,在这里
javac是一个外部命令,这个命令的作用就是编译java源代码文件,后面的参数传入的就是一个.java文件的保存路径,你如果直接一个.java的文件名,意思就是在当前目录下搜索这个源文件,而你的源文件不是保存在c:\目录下,自然会报错.下面的那个java也是一个,它是用java这个外部命令来运行一个经过编译的.class文件从而执行java程序.你在环境变量里设置的那个classpath是在java虚拟机里调用的,这个环境变量往往是设置一个jdk内部的class的文件保存的目录的,这样在你用javac编译源文件时,它就会调用java的内部类.
不知道我这样说你能不能明白,我的表达能力有限呀,唉

那你重新设置下你的环境变量,(你的好象有问题也)...

1. JAVA_HOME: D:\Java\jdk1.5.0_07
2.CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (注意:点号不能省略,表示当前目录)
3. 编辑PATH的变量值,在后面加上 ;%JAVA_HOME%\bin (注意:要有分号隔开)
安装完毕,用命令简单测试一下: java -version

你把JAVA的路径是放在PATH的最前面了吗??
还有你的方法很不好为什么不把Jdk放在C:呢
为了省那点空吗 你可以在其他的盘符建个文件夹放你的.java文件啊 但是jdk就没那必要了
有毛病也是自己找的??

classpath一定要用“;”作为结束符号,否则自私的微软不会鸟java的

安装完 JDK后,只要设置环境变量Path一项就可以了,不用设置别的也能用

实际上,classpath是指虚拟机在运行class文件时寻找class文件的路径:例如假设【a.class在“d:\javatest”目录下,classpath变量=“d:\javatest”】,在当前路径为c:\user时在命令窗口输入“java a.class”,虚拟机(即解