又是“java.lang.ClassNotFoundException”的另一个java新手错误

时间:2012-02-23 00:32:07

标签: java jdbc

我是java的新手,并尝试使用JDBC编写一个简单的程序。它必须是明显的东西,但我只是没有看到它。我一直在手动定义类路径,因为只有两个类(至少我认为认为程序运行时所需的类与程序位于同一目录中,即ojdbc_g的文件。 jar和JDBCexample.class)。

该程序使用以下编译正常:

javac -cp ./ojdbc_g.jar JDBCexample.java

正如您所知,Oracle的JDBC驱动程序(ojdbc_g.jar)与file:JDBCexample.java位于同一目录中。编译之后,我现在在同一目录中也有JDBCexample.class文件。当我尝试使用以下方式运行它时:

java -classpath "*" JDBCexample    or,
java -classpath ./ojdbc6_g.jar:./JDBCexample.class JDBCexample  or,
java -classpath "*":ojdbc6_g.jar JDBCexample

我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: JDBCexample
Caused by: java.lang.ClassNotFoundException: JDBCexample
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: JDBCexample.  Program will exit.

这是文件:JDBCexample.java:

import java.sql.*;
import oracle.jdbc.*;
import oracle.jdbc.pool.OracleDataSource;

class JDBCexample {

    public static void main(String args[]) throws SQLException {
            Connection conn;
            Statement stmt;
            String query;
            String sqlString;
            ResultSet rset;

            // connect to database
            OracleDataSource ds = new OracleDataSource();
            ds.setURL("jdbc:oracle:thin:@host6.mydomain.com:1521:ORCL");
            conn = ds.getConnection(HR,HR);

            // create Oracle DatabaseMetaData object
            DatabaseMetaData meta = conn.getMetaData();
            // show JDBC driver version
            System.out.println("JDBC driver version is " + meta.getDriverVersion());
    }

1 个答案:

答案 0 :(得分:3)

您正在将课程编译为local directory。因此,当您运行它时,您需要{class 1}}类路径中的当前目录。

如果在include机器上

linux

如果在java -cp .:./ojdbc6_g.jar JDBCexample 机器上

Windows