您在哪里保存Oracle的jdbc瘦驱动程序?我试过jre/lib/ext
,但我的程序,Crystal Reports一直说它找不到它。我想我把它保存在了错误的地方。
如果我转到命令提示符并使用:
C:\ TEMP> java oracle.jdbc.OracleDriver
在Fri_Aug_26_08上使用JDK6编译的Oracle 11.2.0.3.0 JDBC 4.0:19:15_PDT_2011
默认连接属性资源
2011年10月12日星期三14:02:05 EDT 2011
所以我知道它就在那里。
编辑:由于我无法让CR工作,我尝试了一个控制台应用程序,但找不到驱动程序:
package javaapplication1;
public class JavaApplication1 {
public static void main (String[] args) throws Exception
{
Class.forName ("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@myserver:1521:mysid", "myid", "mypass");
// @//machineName:port/SID, userid, password
try {
Statement stmt = conn.createStatement();
try {
ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
try {
while (rset.next())
System.out.println (rset.getString(1)); // Print col 1
}
finally {
try { rset.close(); } catch (Exception ignore) {}
}
}
finally {
try { stmt.close(); } catch (Exception ignore) {}
}
}
finally {
try { conn.close(); } catch (Exception ignore) {}
}
}
}
编辑:在我的电脑上,它就在这里:
C:\ Program Files \ SAP BusinessObjects \ SAP BusinessObjects Enterprise XI 4.0 \ win32_x86 \ jdk \ jre \ lib \ ext
答案 0 :(得分:3)
将它放在应用程序的运行时类路径中。类路径的文件系统路径取决于您执行应用程序的方式。
根据您的问题历史记录,我看到您正在使用JSP / Servlet,这意味着它是一个在应用程序服务器中运行的WAR文件的Web应用程序。在这种情况下,JAR文件需要进入webapp自己的/WEB-INF/lib
文件夹或appserver自己的/lib
文件夹。
如果它是一个普通的Java应用程序.class
文件,其main()
方法由java
命令执行,那么您必须使用-cp
}(-classpath
)参数指定运行时类路径。它需要一组(半)冒号分隔的磁盘文件系统路径。
如果它是JAR文件,则必须在JAR Class-Path
文件的/META-INF/MANIFEST.MF
条目中指定。这可以相对于java -jar
命令的工作目录。
您应该避免将第三方库放在JRE的/lib
文件夹中。这可能会引入使用相同JRE的所有其他现有应用程序的类路径问题。