小编典典

java导入“找不到符号”

java

我打算将linux工具移植到Windows。该工具在linux系统上运行良好,但是现在在Windows上,我收到此“找不到符号”错误。

我有这个小班级:

package foo;

import foo.bar;

public class Main {
    public static void main(String[] args) throws Exception {
        bar.getInstance();
    }
}

并且在执行javac Main.java时现在出现错误:

导入foo.bar:找不到符号^符号:类栏位置:包foo

Main.java和bar.java在同一目录中。我想念什么?


阅读 413

收藏
2020-11-30

共1个答案

小编典典

一方面,bar应该称呼Bar为惯用语…

理想情况下,应从Main.java 上方 的目录进行编译,如下所示:

javac -d out foo/Main.java foo/Bar.java

这将创建一个名为“ out”的目录,其中包含另一个目录“ foo”,其中将包含Main.class和Bar.class。因此,再次从父目录运行:

java -cp out foo.Main

源位置不 具有 相匹配的封装结构。您 可以 从包含的目录中调用javac Main.javaBar.java如下所示:

javac -cp out Main.java Bar.java

(然后以与以前相同的方式运行它)。通常,根据包来组织源代码通常是一个更好的主意。

您可能会发现使用IDE(例如Eclipse或NetBeans)会更轻松,因为它将为您处理所有编译等工作。如果您 确实
想从命令行构建真实的项目,则可能应该考虑使用完整的构建系统,例如Ant或Maven。

(请注意,如果尝试以相同的方式进行编译,则在Linux上将与在Windows上收到相同的错误。)

2020-11-30