【问题标题】:classpath missing jar file even though specified即使指定了类路径,也缺少 jar 文件
【发布时间】:2013-11-07 23:54:38
【问题描述】:

我已经阅读了许多关于类路径的答案,但我不明白为什么这不起作用;注意事先显示jdbc.jar 的目录列表显然在Drivers 目录中,然后java 命令仍然失败。此外,在我的 Windows 机器上,如果我在 -cp ("./Drivers/*;)的末尾放置一个;,我可以使用相同的设置运行这个完全相同的程序。 java -version 是 java version "1.6.0_37"。

[~/test ] $ ls -1 ./Drivers/

dbdump-0.1.0-SNAPSHOT-standalone.jar
jt400.jar
jtds.jar 

[~/test ] $ java -cp "./Drivers/*"   dbdump.core input.config

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:jtds:sqlserver://SERVER;instance=MSSQLSERVER;database=dbone;
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:154)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:219)
        at dbdump.core$_main.invoke(core.clj:60)
        at clojure.lang.AFn.applyToHelper(AFn.java:161)
        at clojure.lang.AFn.applyTo(AFn.java:151)
        at dbdump.core.main(Unknown Source)

[~/test ] $

【问题讨论】:

    标签: java jdbc clojure jtds


    【解决方案1】:

    无论是在windows还是linux上,java处理路径都是一样的。

    所以问题是如果;正在windows上工作,为什么它不能在linux上工作。

    其次,您是否尝试过在任何其他 linux 机器上执行相同的代码或程序。

    我推测可能是 jar 已损坏。有针对性地提到罐子怎么样。不只是 * 拿起所有的罐子

    是的,nishant 提到的是 java 调用的正确用法。除了加载 jar,我们还需要调用类

    【讨论】:

    • 类路径在两个系统上的处理方式不同。在 linux 系统上,两条路径用冒号分隔,而在 Windows 系统上,它们用分号分隔。当然,对于上面给出的特定示例,这无关紧要,因为-cp 选项只有一个条目。
    • 你是对的...... Jar 文件有问题。 Jar 文件(从 jtds 网站下载的文件不起作用,但我还有另一个文件。它们都是 1.3.1 版本,但清单略有不同,可能还有其他内容。我正在尝试将 jar 与找出为什么官方下载的不能与我的 clojure 应用一起使用。
    【解决方案2】:

    "lib/*" 应该足够了(reference):

    java -cp "Drivers/*" com.example.Classname
    

    类路径条目可以包含基本名称通配符 *, 这被认为等同于指定所有文件的列表 在扩展名为 .jar 或 .JAR 的目录中。 例如, 类路径条目 foo/* 指定名为的目录中的所有 JAR 文件 富。

    对于它的价值,this 是在 Windows 上处理事情的方式。

    【讨论】:

    • 请注意,这适用于 java 6+,但在 java 5 或更低版本上,您必须单独列出每个 jar 文件。
    • @amalloy 没错。我可能也应该添加我的答案。
    • dbdump.core 是类名(它是一个 clojure 程序),而 input.config 是我试图传递给 -main 的东西......也许它与我在unix上传递参数的方式?正如我提到的,它适用于 Windows....
    猜你喜欢
    • 1970-01-01
    • 2014-11-23
    • 2016-11-07
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2016-03-21
    相关资源
    最近更新 更多