全部博文(626)
分类: Java
2013-09-22 09:26:35
老鸟遇到新问题——JDK环境变量的配置
用Java编程已经有几年了,从早期使用的JBuilder到后来的NetBeans、Eclipse编辑环境,从JDK1.4到现在的JDK6,也用java做了多个项目,但偏偏在最近遇到了JDK环境变量的配置问题。
起因如下:前几天我在MS-DOS环境下编译java源文件,javac编译能成功,用java执行其class文件就报错,提示Exception in thread "main"java.lang.NoClassDefFoundError: Methodplay,在eclipse环境下或netbeans环境下运行倒是没问题,偏偏在MS-DOS下就是不行。
上网查了JDK环境变量的配置,都是讲在系统变量处设置CLASSPATH,PATH,JAVA_HOME等,我依葫芦画瓢,问题依然存在。上SUN公司网站查看安装及配置指南,其说的都很简略,不能解决问题。
(补充一句:我的系统是windowsXP,JDK6。)
琢磨了两三天,总算彻底解决了问题。
其实根源如下:在用户变量处设置CLASSPATH,其值为: .;c:/jdk/lib
像网上介绍的“C:/jdk/jre/lib/rt.jar;C:/jdk/lib/tools.jar;c:/jdk/lib/dt.jar”等设置为CLASSPATH的内容也可以,但是“.;c:/jdk/lib”设置最为简洁,特别要强调的是,网上介绍的都是把CLASSPATH设置到系统变量中去,其实这样不行,java.exe是找不到所需要的类库的,所以应该把CLASSPATH设置到用户变量处。
其次是path设置,一定要包含BIN目录,如:c:/jdk/bin,它设置在系统变量处是可以的;也可以在用户变量处设置。
至于JAVA_HOME,不设也罢,是个无聊的玩意,只是为了方便你在path或classpath中用相对路径还是绝对路径的问题。比如说JAVA_HOME的内容为C:/JDK,那么在PATH中就可以设置%JAVA_HOME%/BIN,即为用C:/JDK来代替%JAVA_HOME%。