我已经在IntelliJ中编译并运行了一个简单的Java文件。它包含一种主要方法和另一种小型静态方法。每次都能完美运行。
但是,每当我尝试从终端java
在.class
文件上运行命令时,都会得到以下信息:
错误:找不到或加载主类[此处为文件名]
我究竟做错了什么?
java YourClassName
java YourClassName.class
问题是您.class
在命令中包含后缀。
还有其他一些可能的解释,因为您没有给出运行的特定命令。您可能正在从.class
文件位置以外的其他位置运行命令,而没有提供完整的路径,或者您拼写了错误的名称,依此类推。但是,包括伪造的.class
后缀(此java
命令不希望出现)是此问题的最常见原因。
假设main()
调用了包含程序入口点(方法)的类Foo
,并且其源代码位于当前目录中的文件中Foo.java
,从而可以通过运行编译程序javac Foo.java
。因为Foo
是类的名称,所以将生成一个名为的文件,Foo.class
其中包含该类的已编译Java字节码。
要运行该程序,您必须运行:
java Foo
您的描述听起来好像您正在跑步java Foo.class
。对于第一次使用该java
命令运行.class
文件的用户(无论是使用Java编程还是仅运行.class
其他人提供的文件),这是一个常见的绊脚石。
java Foo.class
不会工作;该java
命令将其自变量解释为包含入口点的类的名称,而不是文件的名称。运行时,java Foo
它会查找名为的文件Foo.class
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句