[英]Error: main class not found
編譯程序時,我得到錯誤
找不到主類:解決方案。 程序將會退出。
該計划是:
import java.util.*;
public class Solution{
public static long[] factors(long a){
long[] b;
b=new long[50];
int count=0;
for(long i=1L;i<=a/2;i++)
if(a%i==0) b[count++]=i;
return b;
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int N=in.nextInt();
long K=in.nextInt();
long[] fact=factors(K);
l1:
for(int i=0;i<N;i++)
{
long num=in.nextInt();
for(int j=0;j<fact.length;j++)
if(num%fact[j]==0 && fact[j]!=1) {fact[j]=1;continue l1;}
}
int result=0;
for(int i=0;i<fact.length;i++)
if(fact[i]!=1) ++result;
System.out.println(result);
}
}
這將無法編譯,因為main
方法不屬於某個類。 將main
方法放在類中以解決問題。 並且你的代碼拋出算術異常divide by zero
應該像那樣修復。
for(int j=0;j<fact.length;j++)
if (fact[j] != 0)
if(num%fact[j]==0 && fact[j]!=1) {
fact[j]=1;continue l1;
}
你的代碼是正確的 - 它在ideone( 鏈接 )上編譯並運行良好。
您看到的問題與編譯和運行應用程序的方式有關。 在命令行提示符下,執行以下操作:
javac Solution.java
這將生成Solution.class
文件。 運行如下:
java Solution
此時,正在運行的程序將讀取輸入並在控制台上生成輸出。 如果預期的輸入不可用,它會拋出異常,因為你在沒有檢查hasInt
情況下調用nextInt
,但如果你給它預期的輸入,它會產生一個結果。
編譯程序時,我得到錯誤
找不到主類:解決方案。 程序將會退出。
編譯不需要任何主類:您可以獨立編譯幫助程序類。 所以問題顯然是你正在嘗試運行一個尚未編譯的類。 例如,如果您正在使用命令行工具,那么當您打算運行javac
時,最有可能運行java
。
Java編程模型中沒有獨立的函數; 每個過程/函數必須是某個類的方法,包括static void main
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.