我在尝试在代码中使用Connector / J JDBC驱动程序时遇到问题。
我编写的代码使用Class.forName("com.mysql.jdbc.Driver").newInstance()
加载类,然后使用DriverManager.getConnection()
加载驱动程序。
这会导致com.mydql.jdbc.Driver的ClassNotFoundException。我有mysql连接器的二进制JAR文件mysql-connector-java-5.1.26-bin.jar
。
我的代码通过在Netbeans中构建而打包成JAR文件。
要运行代码,我使用以下
java -classpath "/path/to/mysql-connector-java-5.1.26-bin.jar" -jar MyJarFile.jar
这给出了例外:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
在程序开头添加System.out.println(System.getProperty("java.class.path"));
仅打印MyJarFile.jar
。
我尝试使用export将jar文件添加到CLASSPATH变量,并将-classpath
标志的最后一部分设置为lib/*
,但结果相同。
我尝试从.class文件运行该程序。它抱怨无法找到或加载主类。只有在类路径中使用通配符并且MyJarFile.jar位于该位置时,它才会运行。但它只会在加载驱动程序时挂起。
有没有人对发生的事情有任何想法?
答案 0 :(得分:0)
尝试不要混用-cp和-jar选项,这可能有效:
java -cp "mysql-connector-java-5.1.26-bin.jar:MyJarFile.jar" my.package.Main
表示* nix或
java -cp "mysql-connector-java-5.1.26-bin.jar;MyJarFile.jar" my.package.Main
for windows
其中my.package.Main
是您的主要班级。