Java 无法在不添加 .java 的情况下加载 Main Class

Java Cannot Load Main Class Without Adding .java

我正在尝试 运行 我编译的 Java class 文件,但它一直告诉我它无法找到或加载主文件 class.

我有一个如下所示的目录:

我的目标是 运行 RandomWord.java 文件,它接收文件输入并依赖于 .lift 子目录中的 algs4.jar 文件。 据我所见,要编译,我需要 运行 以下内容(假设我被 cd 到 hello 目录):
$ javac -cp .lift/algs4.jar RandomWord.java
这应该创建我的 RandomWord.class 文件。 现在,要 运行 使用 txt 文件,例如使用 coin.txt,我相信我应该 运行 宁以下:
$ java -cp .lift/algs4.jar RandomWord < coin.txt
但是,这会导致错误说明:错误:无法找到或加载主 class RandomWord。

我对此进行了大量试验,但我不知道发生了什么,但我发现 运行 可以完成以下工作:
$ java -cp .lift/algs4.jar RandomWord.java < coin.txt
但是,我相信在创建 .class 文件时,我不应该在命令行中编写 .java,所以我真的很困惑。

Windows:

$ java -cp ".lift/algs4.jar;." RandomWord < coin.txt

Linux/Mac

$ java -cp ".lift/algs4.jar:." RandomWord < coin.txt

必须将当前目录添加到类路径以允许 java 在那里找到 类。