当我运行使用jbdc的sql驱动程序的代码时,它适用于eclipse。这是在我进入项目属性并添加外部jar之后。但是,当我从命令行运行以下命令时,它会失败。
java -version
java version "1.8.0_25"
javac sql_stuff.java
java sql_stuff -classpath conn.jar
java.sql.SQLException: No suitable driver found for jdbc:mysql://...
与-cp
相同 javac sql_stuff.java
java sql_stuff -cp conn.jar
在Eclipse中我所要做的就是去项目>属性> Java构建路径>库并添加jar文件。
修改
最终用
运行java -cp .:conn.jar sqlstuff
Java似乎需要“重新添加”一个类路径(即使它是'。'!!!),否则它将无法找到该类。你必须使用:作为分隔符(或有时;),上帝知道为什么。希望当他们遇到问题时,这将有助于其他人。
答案 0 :(得分:2)
当您运行java
命令时,在类名之前的所有“开关”(以 - 开头的东西)都被视为JVM的参数。所有在类名后面的人都被认为是类中main
方法的参数。
所以命令行:
java ClassName -cp conn.jar
将被解释为“在没有JVM参数的情况下运行,将数组{ "-cp", "conn.jar" }
作为args
传递给main
。
命令行:
java -cp conn.jar ClassName
将被解释为“使用conn.jar
的类路径运行,并使用空main
数组在ClassName
中调用args
。
所以请记住传递所有JVM参数,包括类路径,之前类的名称。