Java 类在 IntelliJ 中运行良好,但在命令行中却不行

Java 类在 IntelliJ 中运行良好,但在命令行中却不行

我在 IntelliJ 中编译并运行了一个简单的 Java 文件。它包含一个 main 方法和另一个小的静态方法。它每次都能完美运行。

但是,每当我尝试从终端java在文件上运行命令时,我都会收到以下信息:.class

错误:无法找到或加载主类[此处为文件名]

我究竟做错了什么?

答案1

你 必须 跑, 不能跑.java YourClassNamejava YourClassName.class

问题在于您.class在命令中包含了后缀。

由于您没有给出所运行的特定命令,因此还有其他一些可能的解释。可能是您在文件位置以外的某个地方运行该命令,.class并且没有给出它的完整路径,或者您拼错了它的名称,等等。但是,包含命令不期望的虚假.class后缀是导致此问题的最常见原因。java

假设包含程序入口点(main()方法)的类名为Foo,其源代码位于当前目录中名为 的文件中Foo.java,因此您通过运行 来编译程序javac Foo.java。由于Foo是类的名称,因此会生成一个名为 的文件,其中Foo.class包含该类的已编译 Java 字节码。

要运行该程序,您必须运行:

java Foo

您的描述听起来像是在运行。对于首次使用该命令运行文件的用户(无论他们是用 Java 编程还是仅运行其他人提供的文件),java Foo.class这是一个常见的绊脚石。java.class.class

java Foo.class不起作用;该java命令将其参数解释为包含入口点的类的名称,不是文件的名称。运行时java Foo它知道要查找名为的文件Foo.class

相关内容