由于放置了包名,无法在java中找到或加载主类

时间:2017-01-09 18:27:51

标签: java

在我为班级创建包名之前,我的工作正确无误。我遇到像**这样的问题找不到或加载主类**后给我的课程一个包名称,请你检查下面的代码

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

我这边的错误是什么。请注意我用记事本编写程序。编译程序后,它不会创建任何包

2 个答案:

答案 0 :(得分:3)

确定。我复制了你的代码并弄明白了。 首先使用

编译所有内容
javac *.java -d .

然后在FindDiff中声明的包将被创建为文件夹结构,.java文件将被编译为这些

不能通过编写

来运行它
java c2.get.pack.FindDiff

答案 1 :(得分:-1)

FindDiff类不公开,因此您在其中声明的主要方法不能作为入口点。

公开FindDiff

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

[编辑:进一步讨论并发现评论中的问题导致了Tom K的答案,解决了文件名问题]