尝试使用java包时命令行错误

时间:2015-02-18 09:25:10

标签: java linux

我正在学习java包,我可以在netbeans上完美地创建和使用我的包,但不能从lubuntu命令行中完成。我收到一个错误:无法找到或加载主类。这是代码,但我知道这不是问题,因为它在netbeans中完美运行

    package animals;

    public class MammalInt implements Animal
    {

     public void eat()
     {
      System.out.println("Mammal eats");
     }

     public void travel()
     {
      System.out.println("Mammal travels");
     } 

     public static void main(String args[])
     {
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
     }
    } 


     package animals;

     interface Animal 
     {
      public void eat();
      public void travel();
     }

我首先编译Animal.java并将Animal.class文件放入目录中 动物。然后我编译MammalInt.java。如果我没有将Animal.class文件放在animals目录中,则不会编译MammalInt.java。在将两个类文件放入animals目录后,我执行java animals/MammalInt并得到错误:找不到或加载主类。我也有doe java MammalInt并得到相同的错误。这真令人沮丧。请帮忙。

1 个答案:

答案 0 :(得分:1)

编译时(一组文件)需要使用路径。所以使用/

javac animals/*.java

运行Java类时,需要指定类的Java名称。

在你的情况下,这完成如下:

java animals.MammalInt 

这表示您希望包MammalInt中的课程animal。根据您的安装,您还需要将当前目录添加到类路径(这是java查找.class文件的位置),从而导致:

java -cp . animals.MammalInt 

请注意,您运行源代码树的root中的所有命令。这意味着包含程序包目录的目录。所以,如果您有以下指令:

project/
project/animals/
project/animals/Animal.java

然后运行project/目录中的命令。