Ошибка NoClassDefFoundError при тестировании xerial SQLite JDBC - PullRequest
0 голосов
/ 09 декабря 2011

Я не могу запустить SQLite sample , и это сводит с ума. Я получаю сложное многострочное сообщение об ошибке, включающее:

Exception in thread "main" java.lang.NoClassDefFoundError:  Sample/jar

...

Could not find the main class: Sample.jar.

Я подозреваю, что может быть ошибка пути к классам, поэтому вот мой путь к классам (Win7):

.; C: \ Program Files \ Java \ jdk1.6.0_25 \ lib; C: \ Program Files \ Java \ jre6 \ lib \; E: \ Dropbox \ Personal \ Development \ Примеры BlueJ; C: \ Program Files \ Java \ jdk1.6.0_25 \ Lib \ SQLite-JDB-3.7.2.jar

Я запускаю командную строку в папке примеров E: ... BlueJ (FWIW, обычная "java -jar hello.jar" командная строка прекрасно работает из этой папки). Может кто-нибудь, пожалуйста, помогите выяснить, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Ваш classpath должен включать ссылку на сам файл jar, а не только на каталог, в котором он находится.

0 голосов
/ 09 декабря 2011

Извините, пришлось начать еще один ответ, так как этот довольно длинный.

Рад, что все работает, но я думаю, что вы, вероятно, неправильно поняли то, что я пытался сказать в моем предыдущем ответе.

classpath - это серия мест, в которых java будет искать ваши классы. Если элемент classpath является папкой, то все файлы .class будут включены в поиск. Файлы JAR, по сути, являются сжатыми папками, поэтому вы должны включить имя файла JAR в путь к классам. Вы можете поместить сам файл jar в любой каталог, который вам нравится, если на него есть ссылка на путь к классам (используя полный путь к файлу). В своем комментарии к моему другому ответу вы добавили sqlite-jdbc.jar в файл classpath, но, поскольку вы не указали на него полный путь к файлу, java будет смотреть только в текущем каталоге при запуске.

Надеюсь, что это имеет смысл - и спасибо за принятие:)

...