无法在Ubuntu终端中执行Java

时间:2013-04-19 13:43:49

标签: java mysql database bash ubuntu

我正在尝试连接到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

1 个答案:

答案 0 :(得分:6)

您的java命令包含-cp选项,该选项指定类路径:JVM查找要使用的类的位置。

此类路径包含MySQL驱动程序,这很好。但它不包含.文件所在的当前目录(由Sync_DB_RegCheck.class表示)。所以你也需要添加一个:

java -cp .:mysql-connector-java-5.1.24-bin.jar Sync_DB_RegCheck