Windows下Java连接远程Oracle遇ojdbc8类未找到问题求助
解决Java连接Oracle时的
ClassNotFoundException问题 老哥,我来帮你捋捋这个常见的坑——你遇到的java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver,大概率是这几个操作细节没做好,咱们一个个排查:
驱动类名写错了!
Oracle JDBC 8及以后的版本,驱动类已经从旧的oracle.jdbc.driver.OracleDriver改成了oracle.jdbc.OracleDriver。如果你的代码里还是用的旧类名,哪怕jar包放对了也找不到类,赶紧把代码里的驱动类名改过来试试。环境变量CLASSPATH的配置没生效
你说把ojdbc8配置到环境变量里,但要注意两点:- CLASSPATH必须指向具体的jar文件路径,比如
C:\xxx\ojdbc8.jar,而不是只写jar所在的目录; - 如果你用IDE(比如IDEA、Eclipse)写代码,IDE会忽略系统的CLASSPATH环境变量,得在项目里手动引入jar包才行。
- CLASSPATH必须指向具体的jar文件路径,比如
jre/lib/ext目录放错了位置
你复制jar包到C:\Program Files/java/jre/lib/ext,但要确认这个jre是不是你当前Java程序正在使用的环境!比如你电脑可能装了多个JDK/JRE,运行java -version命令可以查看当前生效的Java版本,找到对应的jre目录,再把jar包放进去才有用。最稳妥的方式:直接给项目添加依赖
不管是命令行还是IDE,直接把ojdbc8.jar引入项目才是最靠谱的:- 命令行编译运行:编译时指定classpath:
javac -cp ".;C:\你的路径\ojdbc8.jar" 你的Java文件.java;运行时:java -cp ".;C:\你的路径\ojdbc8.jar" 你的Java文件(Windows下用分号分隔路径)。 - IDE操作:IDEA右键项目→Open Module Settings→Libraries→点击+号选择ojdbc8.jar;Eclipse右键项目→Build Path→Add External Archives选择jar包。
- 命令行编译运行:编译时指定classpath:
检查jar包是否损坏
打开你复制的ojdbc8.jar,看看里面有没有oracle/jdbc/OracleDriver.class这个文件,如果没有,说明jar包不完整,重新从SQL Developer目录里复制一份,或者下载对应版本的官方驱动。
内容的提问来源于stack exchange,提问作者n_ravikumar1




