通过cmd提示符运行java时未获得预期结果

通过cmd提示符运行java时未获得预期结果,java,Java,我一直在使用IDE来执行java程序,我对通过命令提示符运行java程序是完全陌生的。myjavacodes目录的文件结构如下所示: C:\javacodes>javac JdbcDriverTest3.java C:\javacodes>java -cp ;ojdbc14.jar; -Djdbc.drivers=oracle.jdbc.OracleDriver JdbcDriverTest3 JdbcDriverTest3类的定义如下: 导入java.sql.Driver

我一直在使用IDE来执行java程序,我对通过命令提示符运行java程序是完全陌生的。my
javacodes
目录的文件结构如下所示:

C:\javacodes>javac   JdbcDriverTest3.java

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

JdbcDriverTest3
类的定义如下:

导入java.sql.Driver;
导入java.sql.DriverManager;
导入java.util.Enumeration;
公共类JdbcDriverTest3{
公共静态void main(字符串[]args){
枚举e=DriverManager.getDrivers();
而(e.hasMoreElements()){
驱动程序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相关命令的正确方法。先谢谢你


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

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

java -Djdbc.drivers=oracle.jdbc.OracleDriver JdbcDriverTest3
您可以在

以上假设您已经正确设置了CLASSPATH环境变量。根据屏幕截图中的目录结构,作为快速测试,您还可以尝试:

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

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

java -Djdbc.drivers=oracle.jdbc.OracleDriver JdbcDriverTest3
您可以在

以上假设您已经正确设置了CLASSPATH环境变量。根据屏幕截图中的目录结构,作为快速测试,您还可以尝试:

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

尝试使用分号,如:

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());

        }
    }
}
输出:

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

尝试使用分号,如:

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());

        }
    }
}
输出:

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

是否要通过cmd将驱动程序名作为参数传递?否我要通过
-Djdbc.Driver
选项传递驱动程序名。是否要通过cmd将驱动程序名作为参数传递?否我要通过
-Djdbc.Driver
选项传递驱动程序名。我已尝试了上面提到的命令。。。但它仍然不起作用。@Nithin您需要确保类路径设置正确。请参见编辑答案。我已经运行了属于某个目录的
test.java
(它打印“Hello world”)。它正在打印代码中提到的字符串。这能确保我的类路径正确吗?我已经尝试了上面提到的命令。。。但它仍然不起作用。@Nithin您需要确保类路径设置正确。请参见编辑答案。我已经运行了属于某个目录的
test.java
(它打印“Hello world”)。它正在打印代码中提到的字符串。这是否确保了我的类路径是正确的?仅供参考,20年来,您不再需要编写类似
classdriverclass=Class.forName(“oracle.jdbc.OracleDriver”)。如果JDBC驱动程序类位于类路径上,则只需指定JDBC连接字符串,其余部分由java处理。仅供参考,20年来,您不再需要编写类似
class driverClass=class.forName(“oracle.JDBC.OracleDriver”)的代码。如果JDBC驱动程序类位于类路径上,则只需指定JDBC连接字符串,其余部分由java处理。