Error : Could not find or load main class Protection

Error : Could not find or load main class Protection

package package1;

public class Protection
{
 private int pri=1;
 protected int pro=2;
 public int pub=3;

 public void show()
 {
  System.out.println("Value of private variable is :"+pri);
  System.out.println("Value of protected variable is :"+pro);
  System.out.println("Value of public variable is :"+pub);
 } 
 public static void main(String s[])
 {
  Protection p=new Protection();
  p.show();
  //p.pro=0;
 }
} 

以上代码显示运行时错误,指示:

Could not find or load class Protection

我已经尝试创建了一个 package1 文件夹,但它仍然根本不起作用。

我已将您的 java 文件保存在文件夹 package1 中,名为 Protection.java。 在 package1 文件夹所在位置的命令提示符中 运行 以下命令 javac package1/Protection.java

然后

java package1.Protection

它对我有用。请尝试相同的步骤或尝试查找您缺少的内容。

检查您的 class 路径 (F:\java)..那将是两个具有相同名称的 class 文件。 通过 What does "Could not find or load main class" mean?

试试这个:

F:\java\javac -d . Protection.java
F:\java\java package1.Protection

为什么没有 -d 标志编译会失败?那是因为包声明说 class 有一个包,但它不在 运行 执行时间的正确目录中。因此,您要么必须将源文件 Protection.java 放在 package1 目录中,然后按照@Ashutosh 的建议从那里开始,要么使用 -d 标志,以便将生成的 class 文件放在正确的目录结构中。

并且 .. 这适用于假设您的 CLASSPATH 为空或具有 . (当前目录)在 CLASSPATH 中。

这里..这可能有帮助

跟随屏幕截图中的东西