java jar classpath错误帮助

时间:2011-07-24 21:18:05

标签: java jdbc jar executable weka

所以我设置了一个位于文件夹C:\ folder \ folderbaby

的可执行jar

jar包含一大堆使用jdbc

的mysql调用

如果我从命令行转到CD:\ folder \ folderbaby,然后运行java -jar thejar.jar,它将正常运行并正确访问数据库

但是如果我cd到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

首先,jar需要一个.prop文件,其中包含有关要访问的数据库的信息。 prop文件包含在jar本身内...我猜错误是因为它找不到prop文件,即使prop文件在jar中

我将如何解决这个问题,以便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 个答案:

答案 0 :(得分:1)

我认为问题是Manifest行Rsrc-Class-Path是Eclipse扩展(它不是Oracle的Jar文件规范的一部分),而且要在运行时解析的jar文件需要在{{ 1}}代替。

答案 1 :(得分:0)

你应该使用

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

这将设置类路径,然后运行您请求的jar。默认情况下,java使用当前目录作为类路径,当您移动到其他文件夹时,它无法看到jar所在的位置。