【问题标题】:java.lang.ClassNotFoundException: org.postgresql.Driverjava.lang.ClassNotFoundException:org.postgresql.Driver
【发布时间】:2011-07-17 07:24:49
【问题描述】:

每当我将项目构建为 jar(通过 NetBeans)时,它似乎不包含 postgresql 驱动程序库。我记得以前在以前版本的 NetBeans 和驱动程序上没有任何问题。我 cmd 运行类似:

C:\Users\Username>java -jar "C:\Users\Username\Documents\NetBeansProjects\OrdersImport\dist\OrdersImport.jar" C:\orders\sometextfile.txt

是否应该在这一行中包含一些额外的内容来添加 postgresql-9.0-801.jdbc4.jar?我确实将库包含在项目内部的 lib 中,如果我直接从 NetBeans 运行它,它确实可以正常工作。我查看了我以前的项目,它确实有效,似乎一切都一样,可怜我不记得了,请帮忙。

【问题讨论】:

    标签: postgresql netbeans build jar driver


    【解决方案1】:

    在您的 MANIFEST.MF 文件中应该有一个引用 Postgres 驱动程序的条目。并且需要复制驱动程序,以便可以从真正的 jar 文件位置访问它。

    所以您的 MANIFEST.MF 需要包含以下内容:

    类路径:lib/postgresql-9.0-801.jdbc4.jar

    如果 JDBC 驱动程序是您的 NetBeans 项目的一部分,则 NetBeans 应该已将其复制到 dist/lib。

    如果您不想(或不能)更改清单文件,则需要在命令行上手动引用所有需要的库。但是你不能再使用-jar 选项:

    java -cp postgresql-9.0-801.jdbc4.jar;OrdersImport.jar com.mypackage.MyMain C:\orders\sometextfile.txt

    记住,使用 -cp 或 -classpath 时必须指定主类

    【讨论】:

    • 这就是我在 MANIFEST.MF 中所拥有的:Manifest-Version: 1.0 X-COMMENT: Main-Class 将通过构建自动添加 - 正是我过去会得到的,但现在它很顽皮出于某种原因的行为:\
    • 主类与类路径无关。 Class-Path 条目很重要。
    • 好吧,我的错误总是很神奇,创建了新项目>复制了所有代码,尝试使用相同的代码和库运行新项目-这次不喜欢库,说了一些关于无法打开的问题给定 postgresql-9.0-801.jdbc4.jar 的 zip 文件,仔细检查文件名仍然没有用,下载 jdbc3.jar - 就像没有发生任何可怕的事情一样,魔法就像时钟一样工作。是损坏了还是不确定,在这种时候我真的很沮丧,因为我可能会在这个行业中度过我的一生。
    【解决方案2】:

    您必须将 postgre jar 添加到您的类路径:

    C:\Users\Username>java -classpath "location of postgresql-9.0-801.jdbc4.jar" -jar "C:\Users\Username\Documents\NetBeansProjects\OrdersImpo rt\dist\OrdersImport.jar" C:\orders\sometextfile.txt
    

    【讨论】:

    • -classpath(或-cp)在使用-jar时被忽略
    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多