【Java】【FAQ】控制台執行帶自訂包定義的類,出現“Exception in thread "main" java.lang.NoClassDefFoundError__Java

來源:互聯網
上載者:User
Java 控制台執行帶自訂包定義的類,出現“Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”

1、先說明一下代碼實現:自訂package sine,

原始碼儲存路徑為:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLServer.java

package sine;import java.sql.*;public class ConnectSQLServer {    public static void main(String args[]){        String url="jdbc:sqlserver://localhost:1433;DatabaseName=pubs";                String user_name="sa";        String user_password="sine88";        String sqlStr="select * from jobs;";                try{            Connection con=DriverManager.getConnection(url,user_name,user_password);            System.out.println("Connect Success!");            Statement st=con.createStatement();            System.out.println("Create Statement Success!");            ResultSet rs=st.executeQuery(sqlStr);            System.out.println("Query Success!");            System.out.println("-----------------------");                        while(rs.next()){                System.out.println(rs.getString("job_desc"));            }            rs.close();            st.close();            con.close();        }        catch(Exception err){            System.out.println("Connect failed!");            err.printStackTrace(System.out);        }    }}

2、切換到java原始碼所在的檔案夾目錄下,編譯java代碼。

E:\JSP\HibernateDemo\HibernateDemoProject\src\sine>javac ConnectSQLServer.java

3、位元組碼的解釋與運行:java ConnectSQLServer 出現如下錯誤資訊:

E:\JSP\HibernateDemo\HibernateDemoProject\src\sine>java ConnectSQLServer
Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

4、解決方案

先將控制台上的目錄切換到包名的上一個檔案夾處,例如,這裡的package名稱為sine,那麼這裡就切換到sine的上一層目錄,也就是src目錄下,

然後執行如下命令:E:\JSP\HibernateDemo\HibernateDemoProject\src>java sine.ConnectSQLServer

此時結果如下:

E:\JSP\HibernateDemo\HibernateDemoProject\src>java sine.ConnectSQLServer
Connect Success!
Create Statement Success!
Query Success!
-----------------------
New Hire - Job not specified
Chief Executive Officer
Business Operations Manager
Chief Financial Officier
Publisher
Managing Editor
Marketing Manager
Public Relations Manager
Acquisitions Manager
Productions Manager
Operations Manager
Editor
Sales Representative
Designer

 

屆時,問題解決。 同理,加入包名是:org.sine,那麼執行的時候就需要切換到org的上一個目錄下了。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.