2011-07-24 2 views
1

donc je mis en place un pot exécutable qui est dans le dossier C: \ dossier \ folderbabyerreur jar java classpath aide

le pot contient un tas d'appels à mysql en utilisant jdbc

si je vais le ligne de commande et cd à C: \ folder \ folderbaby, puis exécutez java -jar thejar.jar, il fonctionnerait correctement et accéder à la base de données très bien

mais alors si je cd à C: \, puis exécutez java -jar C: \ dossier \ dossierbaby \ thejar.jar, il renverrait un tas d'erreurs:

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 

Tout d'abord, le fichier jar requiert un fichier .prop contenant des informations sur la base de données à laquelle accéder. Le fichier prop est contenu dans le jar lui-même ... Je suppose que l'erreur est là parce qu'il ne pouvait pas trouver le fichier prop même si le fichier prop est à l'intérieur du pot

comment je vais régler ce problème afin que le jar est appelable même du répertoire à l'extérieur où il est contenu?

################## EDIT: Contenu de 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 
+0

Liste le contenu du MANIFEST.MF –

+0

affichez vos URL de connexion jdbc – zacheusz

+0

Le manafest doit se terminer par une ligne vide – gsfd

Répondre

1

Je crois que le problème est que la ligne Manifest Rsrc-Class-Path est une extension Eclipse (il ne fait pas partie de la spécification de fichier Jar d'Oracle), et les fichiers jar à résoudre au besoin d'exécution pour être sur la ligne Class-Path à la place.

0

Vous devez utiliser

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

Cela définira le chemin de la classe, puis exécutez le pot que vous avez demandé. Par défaut, java utilise le répertoire courant comme chemin de classe, et lorsque vous vous déplacez dans un dossier différent, il ne peut pas voir où se trouvent les fichiers jar.