我正在学习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
并得到相同的错误。这真令人沮丧。请帮忙。
答案 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/
目录中的命令。