【问题标题】:Compiled successfully in Eclipse, but fails using terminal在 Eclipse 中编译成功,但使用终端失败
【发布时间】:2021-04-05 05:18:34
【问题描述】:

我正在尝试以 OOP 风格编写 Java 程序,并将两个文件放在名为实用程序的同一文件夹下。该软件包也是实用程序。

HelloWorld.java

package utility;

class HelloWorld {

    public void hello() {
        System.out.println("Hello, world!");
    }

}

HelloWorldDriver.java

package utility;

public class HelloWorldDriver {
    public static void main(String[] args) {
        HelloWorld sayhello = new HelloWorld();
        sayhello.hello();
    }
}

我使用 Eclipse 运行HelloWorldDriver.java,结果成功。

你好,世界!

但是,当我使用终端运行程序时,出现了问题。首先,我使用 javac 编译文件夹中的所有 .java 文件。然后,我直接运行文件。

bash-3.2$ javac *.java
bash-3.2$ java HelloWorldDriver.java

但是,出现了以下问题。

HelloWorldDriver.java:5: error: cannot find symbol
                HelloWorld sayhello = new HelloWorld();
                ^
  symbol:   class HelloWorld
  location: class HelloWorldDriver
HelloWorldDriver.java:5: error: cannot find symbol
                HelloWorld sayhello = new HelloWorld();
                                          ^
  symbol:   class HelloWorld
  location: class HelloWorldDriver
2 errors
error: compilation failed

如果代码或我使用命令行的方式有任何问题,请帮忙提出建议。

【问题讨论】:

  • 你的代码没有问题,只是你忘记添加classpath参数
  • 尝试在java 命令中添加参数-cp .
  • 你不运行.java文件:java HelloWorldDriver
  • 感谢上述cmets。最终我做了以下并成功运行了程序。 1. cd .. 2. java utility/HelloWorldDriver 不知道为什么当我移回上层文件夹时它会起作用。
  • @AndyTurner 你可以“运行”java 文件,因为jdk-11

标签: java terminal


【解决方案1】:

这里有两件事:

您的错误来自您尝试在命令行中运行代码的方式。当您使用java 命令时,您要指定要运行的编译类文件,而不是要运行的java 文件。这看起来类似于java myProgram.class,相当于java myProgram。由于您在驱动程序文件中引用另一个文件,因此您需要将其添加到类路径中,以便 Java 运行时环境在您要求它从该文件运行函数时知道该做什么。在您的情况下,我相信要运行的正确命令是 java HelloWorldDriver -cp HelloWorld

我想提到的另一件事是,在您的实际代码中,您实际上并不需要通过执行HelloWorld sayhello = new HelloWorld(); 创建 HelloWorld 类的实例。相反,您可以删除该行并将其后面的行更改为HelloWorld.hello()。在某些情况下您不想这样做,但是对于您正在做的事情,使用 HelloWorld.hello() 就可以了。

【讨论】:

    猜你喜欢
    • 2011-03-09
    • 2011-09-27
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2012-06-03
    • 2020-12-29
    • 1970-01-01
    • 2015-09-26
    相关资源
    最近更新 更多