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

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


当前回答

在Windows上放置。;在开头的CLASSPATH值处。

这个(dot)表示“查看当前目录”。这是一个永久的解决方案。

此外,您还可以通过设置CLASSPATH=%CLASSPATH%;将其设置为“一次”;。。这将在cmd窗口打开时持续。

其他回答

在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正确处理类路径参数。

有时,可能导致问题的原因与主课无关,我必须通过艰难的方式找到答案。这是我移动的参考库,它给了我:

无法找到或加载主类xxx Linux

我只是删除了那个引用,再次添加,它再次运行良好。

这基本上意味着没有静态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");
    }
}

您确实需要从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

如果此问题与Eclipse相关:

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

请参见下图:

这种方法对我有效。