我正在尝试连接到MYSQL数据库,我的程序 Sync_DB_RegCheck.java 在Eclipe中工作正常。但我想在 Ubuntu 12.04终端中执行并运行相同的程序。但是我在执行期间遇到错误。
Exception in thread "main" java.lang.NoClassDefFoundError: Sync_DB_RegCheck
Caused by: java.lang.ClassNotFoundException: Sync_DB_RegCheck
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: SYNC_APP.bin.Sync_DB_RegCheck. Program will exit.
我的Java程序 Sync_DB_RegCheck.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
public class Sync_DB_RegCheck {
public static void main(String [] args) throws Exception {
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root&password=root");
System.out.println("Connected?");
try{
Statement st = (com.mysql.jdbc.Statement) conn.createStatement();
st.executeUpdate("DROP TABLE del");
System.out.println ("Table Deletion process is completly successfully!");
}
catch(SQLException s){
System.out.println("Table is not exists!");
}
}}
编译代码:这是编译程序而没有错误
$java -cp mysql-connector-java-5.1.24-bin.jar Sync_DB_RegCheck.java
执行代码:出现上述错误
java -cp mysql-connector-java-5.1.24-bin.jar Sync_DB_RegCheck
答案 0 :(得分:6)
您的java
命令包含-cp
选项,该选项指定类路径:JVM查找要使用的类的位置。
此类路径包含MySQL驱动程序,这很好。但它不包含.
文件所在的当前目录(由Sync_DB_RegCheck.class
表示)。所以你也需要添加一个:
java -cp .:mysql-connector-java-5.1.24-bin.jar Sync_DB_RegCheck