【问题标题】:java jar classpath error helpjava jar 类路径错误帮助
【发布时间】:2011-07-24 21:18:04
【问题描述】:

所以我在文件夹 C:\folder\folderbaby 中设置了一个可执行 jar

jar 包含一大堆使用 jdbc 对 mysql 的调用

如果我从命令行 cd 到 C:\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 文件在 jar 内,它也找不到 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

【问题讨论】:

  • 列出MANIFEST.MF的内容
  • 显示你的 jdbc 连接地址
  • 顺便说一句,manafest必须以空行结束

标签: java jdbc jar executable weka


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你应该使用

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

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

    【讨论】: