关于设置CLASSPATH的问题,急!!

wypunk 2004-07-27 11:23:29
我安装了SQL SERVER 2000的JDBC驱动,安装目录为C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC,在该目录中有个lib文件夹,里面有三个.jar文件;
然后我在环境变量中如此设置:d:\j2sdk1.4.2_0\lib\tools.jar;d:\jdk1.3.1_08\lib\dt.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
我用的Web服务器是Tomcat5.0,在一个JSP页中链接数据库,运行时出错,说找不到com.microsoft.jdbc.sqlserver.SQLServerDriver,也就是我装的驱动,我怀疑是环境变量设的问题,然后我看了其他环境变量的设置,有的在分号后加.,然后我将CLASSPATH改为:d:\j2sdk1.4.2_03\lib\tools.jar;.d:\jdk1.3.1_08\lib\dt.jar;.C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;.C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;.C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
还出同样的错误,我不知道是怎么回事。
在装JDBC驱动前,我的CLASSPATH是:
d:\j2sdk1.4.2_0\lib\tools.jar;d:\jdk1.3.1_08\lib\dt.jar
我编了一个HelloWorld的程序,可以成功编译,然后运行总显示
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld
需要说明的是,以上的链接数据库的程序和HelloWorld都没有问题,我把JDBC驱动的lib夹里的.jar文件到我的网站的Web-INF的lib文件夹内,程序就可以正确执行,
用JCreator编译执行HelloWorld也没有问题,
所以我怀疑是我的CLASSPATH写的有问题,如果是这样应该怎么写??


...全文
200 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveunittesting 2004-08-04
  • 打赏
  • 举报
回复
建议你放到tomcat/common/lib里,这样肯定没问题,tomcat好像对classpath不敏感哦^_^
yophoo 2004-08-04
  • 打赏
  • 举报
回复
当你需要编译相关的操作数据库的java或者servlet文件时,你需要将这三个与驱动有关的jar文件添加到CLASSPATH中去,不是PATH。
我个人建议将这三个jar文件另外放到诸如“D:\Jdbc\mssql”这样的目录下,最好目录名称中不要存在有空格,然后再添加到CLASSPATH中。
把驱动放在我的应用目录下的web-inf下的lib文件夹里可以方便应用程序的在不同的环境下布置。
yophoo 2004-07-27
  • 打赏
  • 举报
回复
设置你的CLASSPATH为:.;d:\j2sdk1.4.2_03\lib\tools.jar;.d:\jdk1.3.1_08\lib\dt.jar;.C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;.C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;.C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
其中“.;”的添加很重要,它表示当前目录,否则就会出现如:
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld
报警。

stonegump 2004-07-27
  • 打赏
  • 举报
回复
你在容器中要使用的类,不推荐通过加到环境变量来解决,放在容器的lib下更容易管理。不然类路径很容易混乱。
mickeylm 2004-07-27
  • 打赏
  • 举报
回复
d:\j2sdk1.4.2_03\lib\tools.jar;.d:\jdk1.3.1_08\lib\dt.jar;.-----------
dt.jar也必须是d:\j2sdk1.4.2_03\lib\的!!!要不然你的j2sdk本身就不能运行!(也不用加一个点".")classpath应改为如下:
d:\j2sdk1.4.2_03\lib\tools.jar;d:\j2sdk1.4.2_03\lib\dt.jar;
你的jdk1.3就不用加环境变量了!!用不着!jdk1.3的运行速度远落后于1.4,你就安心配置j2sdk1.4吧.
若你连接的数据库是通过ODBC数据源的话,你把你的数据库驱动放到tomcat的common文件夹下的lib文件夹里.若只练数据库的话,放到你的应用目录下的web-inf下的lib文件夹里.还有数据库的驱动环境变量设置在path里!!不是在classpath里.我给你参考一下我的oracle的path:
%JAVA_HOME%\bin;d:\oracle\ora81\bin;d:\oracle\ora81\Apache\Perl\5.00503\bin\mswin32-x86;C:\ProgramFiles\Oracle\jre\1.1.7\bin;c:\ProgramFiles\Oracle\jre\1.1.7\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%TOMCAT_HOME%\common\lib\classes12.jar;
classes12.jar是连接oracle的.
wypunk 2004-07-27
  • 打赏
  • 举报
回复
d:\jdk1.3.1_08\lib\dt.jar是个错误,应该是d:\j2sdk1.4.2_03\lib\dt.jar,不好意思
我在前面加了.;,现在是:
.;d:\j2sdk1.4.2_03\lib\tools.jar;d:\jdk1.4.2_03\lib\dt.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
HelloWorld的问题解决了,可链接数据库的问题依然存在,我把C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar放在Path里试了,还是不行,是不是还有别的地方错了?每个;后面用不用加“.” 我加了试过了,还是有错~
我没有连ODBC数据源,
我把驱动放在我的应用目录下的web-inf下的lib文件夹里确实运行正确,但有些书里的例子是用环境变量设的,还说不建议放在容器的lib里,这是怎么回事?
谢谢!~

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧