簡體   English   中英

由於放置了包名,無法在 java 中找到或加載主類

[英]Could not find or load main class in java due to placing a package name

在我為我的班級創建包名之前,我正確地完成了我的工作。 在給我的類一個包名后,我遇到了類似 ** 無法找到或加載主類 ** 這樣的問題,請檢查我下面的代碼

package c2.get.pack;
import java.util.*;
import java.lang.*;
class FindDiff
{
    public static void main(String[] args) 
    {
        ArrayList<Integer> arr=new ArrayList<Integer>();
        arr.add(1);
        arr.add(2);
        arr.add(5);
        arr.add(5);
        arr.add(7);
        arr.add(7);
        arr.add(11);
        System.out.println("Prime number in ArrayList :"+arr);
        Set<Integer> set=new HashSet<Integer>(arr);
        arr.clear();
        arr.addAll(set);
        System.out.println("Prime number in Set :"+arr);
        Iterator itr=set.iterator();
        while(itr.hasNext()){
        int num=(int)itr.next();
        System.out.println(num);
    }
}

我得到了這樣的錯誤結果
首先我用類名編譯文件

G:\\java\\java_programs\\logics>javac FindDiff.java

之后嘗試使用包名運行程序我給出了一個錯誤

G:\\java\\java_programs\\logics>java c2.get.pack.FindDiff Error: Could not find or load main class c2.get.pack.FindDiff

我這邊有什么錯誤。請注意,我使用記事本編寫程序。編譯程序后,它沒有創建任何包

好的。 我復制了你的代碼並弄清楚了。 首先編譯一切

javac *.java -d .

然后在 FindDiff 中聲明的包將被創建為文件夾結構,並且 .java 文件將被編譯成這些

不,你可以通過寫作來運行它

java c2.get.pack.FindDiff

FindDiff類不是公共的,因此您在其中聲明的 main 方法不能作為入口點。

公開FindDiff

public class FindDiff { /* ... */ }

[編輯:進一步討論和發現評論中的問題導致了 Tom K 的回答,解決了文件名問題]

暫無
暫無

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

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