设置CLASSPATH环境变量真的有必要吗?
看到很多介绍Java运行环境的文章,都说到ClassPath环境变量的设置。而且每每遇到如java.lang.NoClassDefFoundError的错误,一般也都归结为ClassPath环境变量没有设置正确。不巧,今天我也遇到了同样的问题。
我需要运行某个程序,需要Java3D的支持。然而当我把Java3D SDK安装完成之后,出现了java.lang.NoClassDefFoundError错误。那么,我应该在哪里设置ClassPath呢?通过Google搜索,我按照很多人的经验设置ClassPath环境变量了,问题没有解决!
而且,还有一个困扰的问题是我的系统里有很多个Java库,Runtime一个,SDK一个,还有JBuilder也带了一个。绝望之余,我甚至把Java3D往每一个地方都安装了一次,一切依然无用!最后,我的解决办法是把Path的路径修改!把Jre\Bin改为<SDK>\Jre\Bin,也就是统一使用SDK附带的数据!问题随之解决了,虽然有点莫名其妙。
现在,我已经把ClassPath,Java_Home等环境变量都去掉了!程序依然能够很好的运行!
由此得出结论,除了Path路径,其他的Java环境变量都是无用的!另外,我在Sun的文档里也没有看到ClassPath的设置说明,在《Core Java2 Volume2 Fundamentals》一书中也没有提及!或许,这些变量仅仅是以前版本的遗留?
另外一个疑问,Java对公共包的管理似乎有点随意。虽然可以避免"DLL HELL",但随之而来的是数据冗余,经常可以看到一些开放源码的包被很多应用程序附带。
对于Java我是菜鸟,不当之处,请高手指正。
运行环境:Win2K+Java2 1.4