首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 程式無法運行、點擊 Run 無反應?常見原因與解決方案

     編輯:程式設計綜合問答

問題現象

在撰寫 Java 程式時,有時會遇到點擊 IDE 的「Run」按鈕後完全沒有反應,控制台也沒有任何輸出,甚至沒有報錯訊息。這通常是因為程式進入點 main 方法的簽名不正確,導致 JVM 無法識別並啟動程式。

錯誤代碼示例

import java.util.Scanner;

public class sushu {
    private boolean isPrime(int n) {
        int i = 0;
        while (true) {
            if (i == 2) break;
            for (int t = 1; t < n; t++) {
                if (n % t == 0) {
                    i++;
                }
            }
        }
        return true;
    }

    // 錯誤:缺少 static 修飾符,參數名拼寫錯誤
    public void main(String[] agrs) {
        System.out.println("To determine whether primes");
        System.out.println("Please enter the number :");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        if (isPrime(n)) {
            System.out.println("The number is primes");
        }
    }
}

核心問題分析

  1. main 方法非 static:JVM 啟動時調用的是 public static void main(String[] args),若缺少 static,JVM 找不到入口。
  2. 參數名拼寫錯誤:雖然參數名不影響功能,但習慣寫作 args,原代碼寫成 agrs。
  3. 邏輯錯誤:isPrime 方法的判斷邏輯有缺陷,會導致無限循環或錯誤結果。

修正後的完整代碼

import java.util.Scanner;

public class sushu {
    // 建議改為 static,方便 main 直接調用
    private static boolean isPrime(int n) {
        if (n <= 1) return false;
        for (int i = 2; i * i <= n; i++) {
            if (n % i == 0) return false;
        }
        return true;
    }

    // 標準 main 方法簽名
    public static void main(String[] args) {
        System.out.println("To determine whether primes");
        System.out.println("Please enter the number :");
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        if (isPrime(n)) {
            System.out.println("The number is prime");
        } else {
            System.out.println("The number is not prime");
        }
        in.close(); // 良好習慣:關閉 Scanner
    }
}

關鍵修正點總結

  • 給 main 加上 static 修飾符
  • 修正參數名為 args
  • 優化 isPrime 算法:只需檢查到 sqrt(n),並處理 n <= 1 的情況
  • 補上 else 分支與資源關閉

修正後,程式即可正常編譯運行,並在控制台等待輸入並輸出判斷結果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved