先看第一种和第三种,差别只是第一种多了个classpath加入C:\j2sdk1.4.1_04\lib\tools.jar; C:\j2sdk1.4.1_04\lib\dt.jar,而你的HELLOWORLD.JAVA肯定没有用到tools.jar和dt.jar两个包中的类,所以这两种方法是一样的.而第二种里的PATH实际上也就是C:\j2sdk1.4.1_04\bin,所以和第三种其实是一样的,只是写法上用了;%JAVA_HOME%
调试欢乐多
第二种和第三种的classpath路径一个设到了\LIB 令一个设到了lib\tooLs.jar 和dt.jar 两者有何区别?另外.JAR 文件是什么意思,装的是什么东西
谢谢解答
令一个设到了lib\tooLs.jar 和dt.jar 直接指向了你可能会用到的两个包名
在配置了环境变量
path: I:\j2sdk1.4.2_03\bin;
classpath: .;I:\j2sdk1.4.2_03\lib\tools.jar;I:\j2sdk1.4.2_03\lib\dt.jar;
之后,在javatest 文件夹下写了一个HelloWorld的小程序,在dos提示符下:
I:\ >javac I:\javatest\HelloWorld.javaI:\ >java I:\javatest\HelloWorld
出错如下:
Exception in thread "main" java.lang.NoClassDefFoundError:而如果在
I:\javatest> javac HelloWorld.javaI:\javatest> java HelloWorld
HelloWorld !
能够输出正确的结果,不知为何?请执教
想让出错的程序能够正常运行应该如何作?我也知道第二种方法好用,我就是想知道为什么,谢谢!
I:\ >java I:\javatest\HelloWorld
这种情况下系统不会到你的绝对路径下去找.java文件,而你在
I:\javatest> javac HelloWorld.javaI:\javatest> java HelloWorld
HelloWorld !
里面,因为当前目录已经在javatest包里面了,所以虚拟机会正确读出这个包里的helloworld.class文件这和你的path: I:\j2sdk1.4.2_03\bin是有关的,因为你这就是设定JAVA虚拟机的路径,以后你无论在任何目录下运行java test.java文件,系统都会到path: I:\j2sdk1.4.2_03\bin下去找这个java.exe文件的.