【发布时间】: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