jav jar справка об ошибках classpath - PullRequest
1 голос
/ 25 июля 2011

, поэтому я установил исполняемый файл jar, который находится в папке C: \ folder \ folderbaby

jar содержит целую кучу вызовов mysql с использованием jdbc

если перейти из командной строки и перейти к C: \ folder \ folderbaby, а затем запустить java -jar thejar.jar, он будет работать правильно и получить доступ к базе данных очень хорошо

но затем, если я перейду к C: \ и затем запустите java -jar C: \ folder \ folderbaby \ thejar.jar, он вернет целую кучу ошибок:

Trying to add database driver (JDBC): RmiJdbc.RJDriver - Error, not in CLASSPATH
?
Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Error, not in CLASS
PATH?
Trying to add database driver (JDBC): org.hsqldb.jdbcDriver - Error, not in CLAS
SPATH?
java.sql.SQLException: No suitable driver found for jdbc:idb=experiments.prp
java.lang.IllegalStateException: Not connected, please connect first!
false

Прежде всего банке требуется файл .prop, который содержит информацию о базе данных для доступа. Файл prop содержится в самой банке ... Я предполагаю, что ошибка в том, что он не может найти файл prop, даже если файл prop находится внутри jar

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

################## РЕДАКТИРОВАТЬ: Содержание Manifest.MF ################### ######

Manifest-Version: 1.0
Rsrc-Class-Path: ./ mysql-connector-java-5.1.17-bin.jar weka-src.jar weka.jar j.jar
Class-Path: .
Rsrc-Main-Class: Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

Ответы [ 2 ]

1 голос
/ 25 июля 2011

Я считаю, что проблема в том, что строка Manifest Rsrc-Class-Path является расширением Eclipse (это не является частью спецификации Jar-файла от Oracle), а файлы JAR, которые должны быть разрешены во время выполнения, должны находиться в строке Class-Pathвместо этого.

0 голосов
/ 25 июля 2011

Вы должны использовать

java -classpath C:\folder\folderbaby -jar C:\folder\folderbaby\thejar.jar

Это установит путь к классу, а затем запустит запрошенную вами банку. По умолчанию java использует текущий каталог в качестве пути к классам, а когда вы перемещаетесь в другую папку, он не может видеть, где находятся jar-файлы.

...