classpath缺少jar文件,即使指定了

时间:2013-11-07 23:54:39

标签: java jdbc clojure jtds

我在类路径上阅读了很多答案,我无法理解为什么这不起作用;请注意,预先显示jdbc.jar的目录列表显然位于Drivers目录中,然后java命令仍然失败。另外,在我的Windows机器上,如果我在-cp(;)的末尾添加"./Drivers/*;,我可以使用相同的设置运行这个确切的程序。 java -versionjava 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 ] $

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

java处理路径相同,无论是在Windows还是Linux上。

所以问题是;正在研究Windows为何它无法在linux上运行。

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

我认为可能是罐子腐败了。那针尖地提到罐子怎么样。不只是*拿起所有的罐子

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