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

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


当前回答

在搜索了两天后,我找到了这个解决方案,并成功了。这很奇怪,但它对我有用。

package javaapplication3;
public class JavaApplication3 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    System.out.println("Hello");
}

}

这是我要运行的程序,位于C:\Java Projects\JavaApplication3\src\JavaApplication3

现在在此位置打开cmd并使用此命令编译程序

javac JavaApplication3.java

编译完成后,向下导航一个目录,即C:\Java Projects\JavaApplication3\src

现在运行以下命令以执行程序

java javaapplication3.JavaApplication3

其他回答

这里的所有答案似乎都针对Windows用户。对于Mac,类路径分隔符是:,而不是;。作为一个错误,使用;如果从Windows到Mac,则很难发现。

下面是相应的Mac命令:

java -classpath ".:./lib/*" com.test.MyClass

在本例中,包是com.test,类路径中还包含一个lib文件夹。

如果此问题与Eclipse相关:

尝试将项目添加到类路径中。

请参见下图:

这种方法对我有效。

您确实需要从src文件夹中执行此操作。在那里键入以下命令行:

[name of the package].[Class Name] [arguments]

假设您的类名为CommandLine.class,代码如下:

package com.tutorialspoint.java;

    /**
     * Created by mda21185 on 15-6-2016.
     */

    public class CommandLine {
        public static void main(String args[]){
            for(int i=0; i<args.length; i++){
                System.out.println("args[" + i + "]: " + args[i]);
            }
        }
    }

然后你应该cd到src文件夹,你需要运行的命令如下:

java com.tutorialspoint.java.CommandLine this is a command line 200 -100

命令行上的输出将是:

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

解决“无法加载主类错误”

看完所有的答案后,我发现大多数答案都不适合我。所以我做了一些研究,以下是我得到的答案。只有在步骤1不起作用时才尝试此操作。

尝试安装JRE 32或64。如果它不起作用,打开并转到C:\Program Files(x86)\Java或C:\Program Files\Javai.打开jdk文件夹,然后打开bin文件夹。二。复制路径并将其添加到环境变量中。确保用分号;分隔变量;。例如,“C:\Yargato\bin;C:\java\bin;”。如果不这样做,将导致更多错误。iii.转到jre文件夹并打开其bin文件夹。iv.在这里搜索rt.jar文件。我的是:C: \程序文件(x86)\Java\jre1.8.0_73\lib\rt.jar复制并在环境变量下搜索类路径变量并将其粘贴在那里。v.现在重新启动cmd并再次尝试运行。错误将消失。vi.我将发布我的YouTube视频教程的链接。

如果使用IntelliJ并在从IDE运行main方法时出错,只需确保类位于java包中,而不是kotlin中