`

Java开发中经常遇到ClassNoFound的异常问题

阅读更多
1.编译源代码时,发生的问题
   首先使用java -version查看,如果可以正确显示版本,表示你的jdk的路径是正确的。也就是说你的Path是正确的。
   而ClassPath的设定是错误的。
   Path和ClassPath到底有什么区别呢?其时这个非常简单,但是也非常重要。
   Paht其时是一个公用的环境变量,他的作用就是为在DOS环境下执行一些命令提路径。比如:
   你上面执行的java这个命令,他是在你jdk的安装目标中。。如果你指定好Path那么你只要在命令行环境下输入java,那根据你设定好的PATH,会自动定位到这个java命令。意思就是当你输入java后,系统会自动的搜索所有PATH中的目录,一旦在一个目录下找到,就运行该命令。

   而ClASSPATH则是Java专用的路径,他也就是JAVA环境中一些常用的JAR文件的存放地,相当于我们开发C或者C++链接DLL存放的目录。。也就是指JAVA开发环境中常用的一些库的存放地(而JAVA会将一些库打包成JAR)

  所以当你能执行java -version表明你的PATH设定的正确的,但是JAVA编译和执行时的一些常用库他找不到,也就是说CLASSPATH设定不正确,以致于JAVA的环境无法找到相应的库(也就是相当于你执行一个WINDOW程序时经常碰到的提示XX.dll找不到这样的,但是JAVA他不提示,他就直接给你一个异常。)

2.连接数据时的一些问题
  常见的是代码都写好了,编译也OK,结果执行还是会发生ClassNoFound的问题,其时这也是ClassPATH那里在做怪。
  所以你不管连接那个数据库,数据库的厂商都会提供一个JDBC的JAR,来帮助你使用JAVA来连接数据库。而常发生的ClassNoFound这种异常就是因为没找到这个JAR文件,怎么办,你其时只要把他加到CLASSPATH,让JAVA在运行时能找到他就好了,加到那里其时并不象那些网上文章中说的,什么jdk里也放阿,什么TOMCAT那里也放阿什么的。。
你明白原理就好了,那就是能让他出现在CLASSPATH中,比如你CLASSPATH中指定了一个目标,那么只要你把他拷贝进去就OK了,但是一般来说,这个也是有些常用的规范问题的,具体你可以参考公司的规范文档。。
  String url = "jdbc:oracle:thin:@localhost(实例所在的机器名):1521:oracle9i(实例名)";
 //一般都用think方式,一般Oracle和WEB服务器肯定是不在同一机器上,所有WEB服务器上肯定没安装ORACLE客户端
  try {
   Class.forName("oracle.jdbc.OracleDriver");
   conn = DriverManager.getConnection(url, 用户名, 密码);

继续补充中。。。。。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics