通过cmd提示运行java时没有得到预期的结果

时间:2018-01-23 04:44:44

标签: java

我一直在使用IDE来执行java程序,而且我是通过命令提示符运行java程序的新手。我的javacodes目录的文件结构如下所示:

enter image description here

JdbcDriverTest3类定义如下:

import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Enumeration;

public class JdbcDriverTest3 {

    public static void main(String[] args) {


        Enumeration<Driver> e = DriverManager.getDrivers();

        while(e.hasMoreElements()){

            Driver d = e.nextElement();
            System.out.println(d.getClass());
            System.out.println(d.getClass().getName());

        }

    }   

}

我在命令提示符下运行了以下命令:

C:\javacodes>javac   JdbcDriverTest3.java

C:\javacodes>java  -Djdbc.driver="oracle.jdbc.OracleDriver" JdbcDriverTest3

代码应该打印驱动程序类名。但它没有给出任何回应。请建议我使用java相关命令的正确方法。提前谢谢。

编辑:使用上述java代码的目的是了解如何通过命令提示符加载驱动程序类colud。

2 个答案:

答案 0 :(得分:1)

系统属性的名称为jdbc.drivers,最后为s。将命令行更改为:

java -Djdbc.drivers=oracle.jdbc.OracleDriver JdbcDriverTest3

您可以在Javadoc of java.sql.DriverManager

中找到更多详情

以上假设您已正确设置CLASSPATH环境变量。鉴于屏幕截图中的目录结构,您还可以尝试:

作为快速测试
java -cp ojdbc14.jar:. -Djdbc.drivers=oracle.jdbc.OracleDriver JdbcDriverTest3

答案 1 :(得分:1)

尝试使用分号,如:

java -cp ;ojdbc14.jar; -Djdbc.drivers=oracle.jdbc.OracleDriver JdbcDriverTest3

代码将是:

import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;

public class JdbcDriverTest3 {
    public static void main(String args[]) {

        //Class driverClass = Class.forName("oracle.jdbc.OracleDriver");
        //DriverManager.registerDriver((Driver) driverClass.newInstance());

        Enumeration<Driver> e = DriverManager.getDrivers();

        while(e.hasMoreElements()){

            Driver d = e.nextElement();
            System.out.println(d.getClass());
            System.out.println(d.getClass().getName());

        }
    }
}

编译并运行如下:

C:\javacodes>javac   JdbcDriverTest3.java

C:\javacodes>java -cp ;ojdbc14.jar; -Djdbc.drivers=oracle.jdbc.OracleDriver JdbcDriverTest3

Out put:

class oracle.jdbc.driver.OracleDriver
oracle.jdbc.driver.OracleDriver