java.lang.ClassNotFoundException: com.mysql.jdbc.Driver when executing JAR

丶灬走出姿态 提交于 2019-11-30 07:39:21

问题


I am attempting to connect to my local MySQL server with the following code:

dbURL = "jdbc:mysql://localhost:3306:/" + dbname;
try{
    Class.forName("com.mysql.jdbc.Driver");
    try{
        con = DriverManager.getConnection(dbURL, dbuser, dbpass);
    } catch (SQLException ex){
        System.out.println("ERROR: Could not connection to SQL DB");
        con = null;
    }
} catch (ClassNotFoundException e){
    System.out.println("Error: ");
    e.printStackTrace();
}

I then get

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

I understand that Java cannot find the proper driver for connecting the Java environment to the MySQL database. This is being compiled on a Windows 7 system and ported over to an Ubuntu 11.04 system.

Is there a particular way I can run the Java program with a particular classpath such as:

java -cp /usr/share/java/mysql-connector-java.jar program.jar

That didn't work when I tried it.


回答1:


In case of JARs, the -cp and -classpath arguments and the %CLASSPATH% environment variable are ignored. Instead, the classpath has to be specified in the Class-Path entry of JAR's own /META-INF/MANIFEST.MF file. It can be a path relative to the JAR itself. E.g. in the same folder or in a /lib subfolder.

The below example assumes the driver to be in the same folder as the JAR.

Class-Path: mysql-connector-java.jar

(make sure that the MANIFEST.MF file has a blank line at the end)

See also:

  • Using JAR files - The Basics - Understanding the MANIFEST.MF
  • Eclipse: Package multiple projects into one JAR
  • Java Manifest file's class path and how it determines relative dirs



回答2:


Install MySQL connector for JAVA

sudo apt-get install libmysql-java

Set classpath

export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar

Source: http://marksman.wordpress.com/2009/03/01/setting-up-mysqljdbc-driver-on-ubuntu/




回答3:


No matter where it's compiled, it will run smoothly in the same JVM implementation.

All you have to do is to properly include a JDBC driver connector in your classpath. Try putting mysql-connector-java.jar into the same directory with your program.

If you unzip this jar file, does it contain com/mysql/jdbc/Driver.class? If not, try to download jdbc driver implementation from the mysql web-site.



来源:https://stackoverflow.com/questions/8621141/java-lang-classnotfoundexception-com-mysql-jdbc-driver-when-executing-jar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!