错误:无法找到或加载主类保护

时间:2015-03-09 09:45:46

标签: java javac

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;
 }
} 

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

  

无法找到或加载类保护

我已经尝试并创建了一个package1文件夹,但它仍然无法正常工作。

4 个答案:

答案 0 :(得分:2)

试试这个:

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

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

并且..这可以假设您的CLASSPATH为空或具有。 CLASSPATH中的(当前目录)。

答案 1 :(得分:1)

这里......这可能有助于enter image description here

按照屏幕cdapture

中的内容进行操作

答案 2 :(得分:0)

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

然后

java package1.Protection

它为我工作。请尝试相同的步骤或尝试找到您所缺少的内容。

答案 3 :(得分:0)

检查你的类路径(OF:\ java)..这将是两个具有相同名称的类文件。 完成What does "Could not find or load main class" mean?