簡體   English   中英

錯誤 - 無法找到或加載主類

[英]Error - Could not find or load main class

我想連接我的java程序以連接數據庫並檢索數據。 它的編譯完美,但運行時我收到此Error : Could not find or load main class

我已經安裝了 Java SQL 驅動程序並將 jar 路徑添加到環境變量中作為 CLASSPATH

import java.sql.*;
public class Java2Sql{
    public static void main(String args[]){
        String url = "jdbc:mysql://localhost:80/";
        String dbName = "test";
        String driver = "com.mysql.jdbc.Driver";
        String userName = "root";
        String password = "root";

        try{
            Class.forName(driver).newInstance();
            Connection conn = DriverManager.getConnection(url+dbName,userName,password);

            Statement stmt = conn.createStatement();
            String strsql = "SELECT * FROM student";

            ResultSet res = stmt.executeQuery(strsql);

            while(res.next()){
                System.out.println("ID :"+res.getString(1));
                System.out.println("Name :"+res.getString(2));
                System.out.println("Tel :"+res.getString(3));
                System.out.println("City :"+res.getString(4));
            }
            res.close();
            conn.close();
        }catch(Exception e){
            e.printStackTrace();
        }

    }
}

假設您的Java2Sqltest包中。

文件夾結構:

在此處輸入圖片說明

您嘗試運行的代碼如下。

代碼:

package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Java2Sql {
    public static void main(String args[]) {
        Connection connection = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/test", "username", "pwd"); // Test DB
            System.out.println("Connected.");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}

您需要編譯和運行的命令是:

javac Java2Sql.java
java -classpath .;test/mysql-connector-java-5.0.4-bin.jar test.Java2Sql

編譯和執行:

在此處輸入圖片說明

清單 Main-class 條目中命名的類在您的 JAR 文件中不存在,或者清單中可能沒有 Main-class: 條目。

大約七年來,您不需要調用 Class.forName(),之后需要渲染以調用 newInstance()。

mysql 連接的默認端口是 3306。所以改變這一行

String url = "jdbc:mysql://localhost:80/";

對此:

String url = "jdbc:mysql://localhost:3306/";

你應該從這里下載驅動程序

和 JAR 文件需要添加到項目類路徑中。

首先右鍵單擊您的 Eclipse 項目,項目 --> 構建路徑 --> 配置構建路徑。 在 Libraries 選項卡下,單擊 Add Jars 或“Add External JARs”並添加下載的 jar

不是 100% 確定,但看起來您使用了錯誤的端口號 80。通過以下語句確保您的 MySQL 端口號是最新的

SHOW VARIABLES WHERE Variable_name = 'port';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM