包不存在错误!

13
我有一个目录结构,类似于根目录下的com/example/web,其中包含一个名为Bear.java的Java文件。 另外还有一个Java文件BearExtra.java,在与上述相同根目录下的com/example/model目录结构中。 我正在从Bear.java调用BearExtra.java中的方法,但出现“包不存在”的错误。
我已经在我的Java文件中导入了com.example.model包。你能给我一些建议吗?

1
你能展示一下你的代码吗? - Mario Duarte
4
编译器真的说了 package does not exist error!! 吗? - Sebastian Mach
2个回答

21

这个是有效的:

com/example/model/BearExtra.java

package com.example.model;

public class BearExtra {
  public static void go() {
    System.out.println("Yay, it works!");
  } 
}

com/example/web/Bear.java

->

com/example/web/Bear.java

package com.example.web;

import com.example.model.*;

public class Bear {
  public static void main(String[] args) {
    BearExtra.go();
  }
}

现在,要编译和运行这些类,请转到您可以“看到”com文件夹的目录,并执行以下操作:

*nix/MacOS

javac -cp . com/example/model/*.java com/example/web/*.java
java -cp . com.example.web.Bear 

Windows

javac -cp . com\example\model\*.java com\example\web\*.java
java -cp . com.example.web.Bear 

并且以下内容被打印到控制台:

Yay, it works!

1
对于在终端进行编译的其他人,请确保您的javac位于最高级目录中。例如:http://www.thejavageek.com/2013/07/21/using-javac-and-java-commands-to-compile-and-launch-java-programs/ 这个答案已提供了解决方案。我想强调这种情况。 - Michael Dimmitt

-1

你的类文件中是否指定了“package”?

Bear.java

package com.example.web;

import com.example.model.*;

class Bear { ...

BearExtra.java

package com.example.model;

public class BearExtra { ...

BearExtra类是public的吗? - Charles Goodwin
1
需要进一步的代码/编译器输出。您需要使问题信息更加详细。 - Charles Goodwin
为什么你不使用可用的IDE呢?IDE将简化编译和导入正确包的工作。 - Rakesh
@Rakesh,我猜你不是在针对我说话,所以最好还是回答问题吧?(我正在使用Eclipse...)此外最好理解IDE正在做什么。 - Charles Goodwin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接