新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。

这意味着什么,是什么导致的,你应该如何解决?


当前回答

在我的例子中,我只是在Eclipse中更改JRE。

请查找随附的屏幕截图:

其他回答

这基本上意味着没有静态main(String[]args)方法。它应该自动解决。如果没有,那么当程序被制作(它没有主方法)或程序被打包(清单信息不正确)时,就会出现问题

这是可行的

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

这行不通

public class Hello {
    public Hello() {
        System.out.println("Hello");
    }
}

在Windows PowerShell中使用-cp选项运行java时,可能会出现如下错误:

The term `ClassName` is not recognized as the name of a cmdlet, function, script ...

为了让PowerShell接受命令,-cp选项的参数必须包含在引号中,如下所示:

java -cp 'someDependency.jar;.' ClassName

以这种方式形成命令应该允许Java正确处理类路径参数。

这就是我解决问题的方法。

我注意到,如果在编译中包含jar文件,那么将当前目录(./)添加到类路径中会有帮助。

javac -cp "abc.jar;efg.jar" MyClass.java
java -cp "abc.jar;efg.jar" MyClass

vs.

javac -cp "**./**;abc.jar;efg.jar" MyClass.java<br>
java -cp "**./**;abc.jar;efg.jar" MyClass

在命令行上指定类路径对我有帮助。例如:

创建新文件夹C:\temp在C:\Temp中创建Temp.java文件,其中包含以下类:公共类温度{公共静态void main(字符串参数[]){System.out.println(args[0]);}}打开C:\temp文件夹中的命令行,并编写以下命令以编译temp类:javac Temp.java运行编译后的Java类,添加-classpath选项,让JRE知道在哪里可以找到该类:java-classpath C:\tempTemp您好!

2022年之前的Java新版本为Java18。您只需编写package关键字和文件夹名称,其中包含java扩展文件和分号,如下所示:

包JavaProgramming;

因为我在JavaProgramming文件中有hello.java文件。注意:在为java编写文件夹名时,不要给空格。像Java编程一样,你必须保持它的样子;Java编程等;

简单hello世界的整个代码结构如下所示:

package JavaProgramming;

public class hello {
  public static void main(String[] args) {
     System.out.println("Hello java after long time");
      }
    }