我在类路径上阅读了很多答案,我无法理解为什么这不起作用;请注意,预先显示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 ] $
答案 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我们还需要调用类