Невозможно скомпилировать с использованием дополнительной библиотеки / jar-файла, javac classpath - PullRequest
1 голос
/ 19 марта 2011

Я пытаюсь скомпилировать код с помощью javac, используя ojdbc6.jar из oracle.

У меня исходный код в 'src', мой .class в 'bin' и мой 'jar' в include.

Моя текущая команда javac:

javac -cp ".;./includes/ojdbc6.jar" src/*.java -d bin

Это работало, пока я не импортировал драйвер в один из моих исходных файлов.Теперь я получаю:

javac -cp ".;./includes/ojdbc6.jar" src/*.java -d bin
src/OracleSingleton.java:1: package oracle.jdbc.driver does not exist
import oracle.jdbc.driver.OracleDriver;

Я уверен, что проблема в моем classpath, есть идеи, как это исправить.Я вручную проверил, есть ли файл там и он есть.

также видя, что я не дошел до этого, я мог бы также выгрузить следующий вопрос, должен ли я указывать на эту банку при запускепрограмма тоже?если да, то как.

Большое спасибо

Ответы [ 2 ]

1 голос
/ 19 марта 2011

Я не уверен, что вижу проблему, но вот рабочий пример, который может пролить некоторый свет. У меня есть драйвер здесь .

import java.sql.*;
import java.util.*;

class DriveTest {
    public static void main (String args [])
        throws SQLException, ClassNotFoundException {
        System.out.println("Current JDBC Drivers: "
            + System.getProperty("jdbc.drivers"));
        Enumeration e = DriverManager.getDrivers(); 
        while (e.hasMoreElements()) {
            System.out.println(e.nextElement());
        }
    }
}
$ javac -cp .:ojdbc6.jar DriveTest.java 
$ java -cp .:ojdbc6.jar DriveTest
Current JDBC Drivers: null
oracle.jdbc.OracleDriver@2666e815
$ jar tf ojdbc6.jar | grep OracleDriver
oracle/jdbc/OracleDriver.class
oracle/jdbc/driver/OracleDriver$1.class
oracle/jdbc/driver/OracleDriver.class
oracle/jdbc/driver/OracleDriverExtension.class

Добавление:

Если присмотреться, механизм DriverManager Поставщик услуг определяет oracle.jdbc.OracleDriver. Вы должны использовать это вместо oracle.jdbc.driver.OracleDriver.

$ cat META-INF/services/java.sql.Driver 
oracle.jdbc.OracleDriver
0 голосов
/ 19 марта 2011

Я думаю, что вы должны использовать -classpath вместо cp, что должно решить проблему

...