1

この Java & mysql プログラムを実行しようとしていますが、コンパイルしてもエラーは表示されません。

しかし、コードを実行すると、いくつかの例外が表示されます..

エラーは何ですか?

コード:Version.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

class Version
{
    public static void main(String args[]) 
    {
        Connection con = null;
        Statement st = null;
        String cs = "jdbc:mysql://localhost:3306/google";
        String user = "root";
        String password = "root";
        try {
            con = DriverManager.getConnection(cs, user, password);
            st = con.createStatement();
            String query = "SELECT * FROM user";
            st.executeUpdate(query);
            } 
            catch (SQLException ex) 
            {
            Logger lgr = Logger.getLogger(Version.class.getName());
            lgr.log(Level.SEVERE, ex.getMessage(), ex);
            }
            finally
            {
            try 
            {
            if (st != null) 
            {
            st.close();
            }
            if (con != null) {
            con.close();
            }
            } catch (SQLException ex) 
            {
                Logger lgr = Logger.getLogger(Version.class.getName());
                lgr.log(Level.SEVERE, ex.getMessage(), ex);
            }
        }
    }
}

コードを実行すると、このエラー メッセージが表示されます

エラーメッセージ

Exception in thread "main" java.lang.NoClassDefFoundError: Version
Caused by: java.lang.ClassNotFoundException: Version
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Version.  Program will exit.
4

1 に答える 1

3

クラスは次のように宣言する必要がありますpublic

public class Version{
   //rest of code
}

デフォルトのクラスはpackage-private、オラクルの Java チュートリアルで説明されているとおりです。

クラスに修飾子がない場合 (デフォルト、package-private とも呼ばれます)、そのクラスは独自のパッケージ内でのみ表示されます。

プログラムが実行を試みても、Version公開されていないためクラスが見つかりません。

于 2013-09-12T09:43:31.273 に答える