【问题标题】:Java file compile using javac unable to refer to other files in the same directory使用javac编译Java文件无法引用同一目录下的其他文件
【发布时间】:2021-03-12 12:52:33
【问题描述】:

我正在尝试从 Eclipse 等 IDE 迁移到独立的 Java 环境,但在将多个文件绑定到一个项目中时遇到了问题。

这是一些示例代码,两个文件都在同一个目录中:

App.java

package com.example.main;

public class App {
    public static void main(String[] args) {
        Example.test();
    }
}

Example.java

package com.example.main;

public class Example {
    public static void test() {
        System.out.println("It's working");
    }
}

在 IDE 中运行 App.java 时,会打印 It's working 的预期输出,但在执行 javac *.java 后,文件似乎会相互忽略。

这是编译后执行java App.java时出现的错误:

App.java:5: error: cannot find symbol
                Example.test();
                ^
  symbol:   variable Example
  location: class App
1 error
error: compilation failed

如何编译项目中的文件以便它们相互识别?

【问题讨论】:

    标签: java eclipse ide javac


    【解决方案1】:

    如果您运行 Java 11 及更高版本,java App.java 将仅编译 App.java

    如果需要引用Example.java,首先需要将两个java文件编译到一个目录下。 让它命名为“类”。该命令将是

    javac -d classes *.java

    之后,您可以通过

    运行它

    java -cp classes com.example.main.App。请注意App没有.class后缀

    当然,如果项目变大或需要其他依赖项,建议使用 Apache MavenGradle 等构建工具来构建项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多