#java #sqlite #classpath
#java #sqlite #classpath
Вопрос:
Я использую ubuntu. Я установил sqlite3 и java через synaptic package manager и загрузил файл sqlitejdbc-v056 jar.
Мой sqlite работает нормально. Я написал некоторый Java-код, который компилируется, но не запускается. Я использовал ant для компиляции материала, и это сработало нормально, как только я поместил jar в то же место, что и build.xml.
Когда я пытаюсь запустить программу (с помощью java program), она говорит: java.sql.SQLException: для jdbc не найден подходящий драйвер: sqlite:test.db
вот часть кода-нарушителя:
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
Из того, что я прочитал до сих пор, это, вероятно, проблема с моим путем к классам, хотя я не совсем уверен, как это исправить. вот что я пробовал:
- поместите файл .jar в тот же каталог, что и основной материал моей скомпилированной программы
- поместите .jar в тот же каталог, что и мой скомпилированный класс, который использует материал sql
- пытался использовать параметр -classpath при вызове java из терминала. Я попробовал это сначала с относительной адресацией, затем с абсолютным путем
- 3 но с подстановочными знаками, т.Е. …/*.jar
- sudo gedit / etc / environment. не было пути к КЛАССАМ, поэтому я ввел это: CLASSPATH =».jar:/home/sheena/Java/lib /.jar:.:.*.jar:/home/sheena/ Java / lib /»
Я чувствую, что у меня нет вариантов.
в отдельном, но связанном с этим примечании я также действительно изо всех сил пытался заставить javac видеть jar во время компиляции, я также не мог правильно разобраться с ant-материалом о classpath. Эта часть не такая срочная, как материал выше, но вот немного build.xml:
<path id="files-classpath">
<fileset dir="lib/" >
<include name="*.jar"/>
</fileset>
</path>
…
это лишь некоторые из вещей, которые я пробовал.
Любые идеи были бы высоко оценены, в Интернете на удивление мало информации по этой теме из того, что я вижу…
Комментарии:
1. Драйвер не упакован более чем в один файл jar, не так ли? В вашем пути во время компиляции у вас есть «*.jar» — подстановочные знаки не работают с аргументом -classpath в java, поэтому вам, возможно, придется добавить все jar в этом каталоге вручную в аргумент -classpath.
2. Я думаю, что формат строки подключения неверен. Примеры, которые я видел, структурированы как jdbc: sqlite:/<путь к БД>, т. е. jdbc: sqlite:/ C: /tools /SQLite /cdr.db
Ответ №1:
попробуйте запустить его следующим образом:
java -classpath ".:sqlite-jdbc-v056.jar" ProgramName
«.:» очень важно (я не был уверен, пробовали ли вы это или нет из вашего описания). также я только что догадался, каково имя вашего .jar, но, очевидно, измените его, чтобы отразить фактическое имя.