我正在使用oracle 12c并希望学习使用cmd以便我知道当我在IDE上单击构建/运行时会发生什么(更像是一般的想法)
JDBCCheck.java:
import java.sql.*;
import oracle.jdbc.*;
import oracle.jdbc.pool.OracleDataSource;
public class JDBCCheck
{
public static void main (String args[]) throws SQLException
{
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:system/system@localhost:1521:oracle");
Connection conn = ods.getConnection();
// Create Oracle DatabaseMetaData object
DatabaseMetaData meta = conn.getMetaData();
// gets driver info:
System.out.println("JDBC driver version is " + meta.getDriverVersion());
}
}
我已经设置了类路径
>echo %CLASSPATH%
C:\OracleInstalation\product\12.1.0\dbhome_1\jdbc\lib\ojdbc6.jar;
C:\OracleInstalation\product\12.1.0\dbhome_1\jlib\orai18n.jar
JDBC驱动程序检查
>java -jar .\ojdbc7.jar
Oracle 12.1.0.1.0 JDBC 4.1 compiled with JDK7 on Thu_Apr_04_15:09:24_PDT_2013
#Default Connection Properties Resource
#Thu Dec 24 20:52:27 IST 2015
此代码已成功编译,但
>java JDBCCheck
Error: Could not find or load main class JDBCCheck
我检查了目录中的JDBCCheck.class
并且它存在
然后我在JCreator中创建了一个具有相同代码的项目,并将该档案添加到项目中,它已成功运行
输出:
JDBC driver version is 12.1.0.1.0
为什么我在cmd中执行时遇到错误,或者是否可以从cmd执行?
答案 0 :(得分:1)
您不应该使用oracle.jdbc.*
类,因为它们是特定于数据库的。 java.sql.*
层用于保持代码数据库不可知。
至于运行该类的问题,您需要确保它在类路径中。最简单的方法是在命令行中添加当前目录.
(以及其他所需的jar),例如:java -cp .;some.jar;other/library.jar JDBCCheck
将你的类放在一个包中也是可取的,在这种情况下你可以像上面那样运行它,除了classname是my.package.JDBCCheck
,你可以在包含子目录的父目录中运行它(和classfile)my/package/JDBCCheck.class
。