Blackninja543 Blackninja543 - 2 years ago 123
SQL Question

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

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

dbURL = "jdbc:mysql://localhost:3306:/" + dbname;
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: ");

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.

Answer Source

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:

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download