在我为班级创建包名之前,我的工作正确无误。我遇到像**这样的问题找不到或加载主类**后给我的课程一个包名称,请你检查下面的代码
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
我这边的错误是什么。请注意我用记事本编写程序。编译程序后,它不会创建任何包
答案 0 :(得分:3)
确定。我复制了你的代码并弄明白了。 首先使用
编译所有内容javac *.java -d .
然后在FindDiff中声明的包将被创建为文件夹结构,.java文件将被编译为这些
不能通过编写
来运行它java c2.get.pack.FindDiff
答案 1 :(得分:-1)
FindDiff
类不公开,因此您在其中声明的主要方法不能作为入口点。
公开FindDiff
。
public class FindDiff { /* ... */ }
[编辑:进一步讨论并发现评论中的问题导致了Tom K的答案,解决了文件名问题]