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

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


当前回答

在本例中,您有:

无法找到或加载主类?类路径

这是因为您使用的是“-classpath”,但破折号与java在命令提示符上使用的破折号不同。我遇到了从记事本复制和粘贴到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正确处理类路径参数。

我无法用这里所述的解决方案来解决这个问题(尽管所述的答案无疑澄清了我的概念)。我两次面对这个问题,每次都尝试了不同的解决方案(在EclipseIDE中)。

首先,我在项目的不同类中遇到了多种主要方法。因此,我已经从随后的类中删除了main方法。其次,我尝试了以下解决方案:右键单击我的主项目目录。前往源代码,然后清理并使用默认设置并单击“完成”。完成一些后台任务后,您将被引导到主项目目录。在那之后,我关闭了我的项目,重新打开它,然后,我终于解决了我的问题。

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

请查找随附的屏幕截图:

我遇到了同样的问题,最终发现了我的错误:)我使用此命令进行编译,并且运行正常:

javac -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar" qrcode.java

但这个命令对我不起作用(我找不到或加载主类qrcode):

java -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar" qrcode

最后,我只在类路径末尾添加了“:”字符,问题就解决了:

java -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar:" qrcode

我上升了一级。因此,现在HelloWorld.class文件位于hello\HelloWorld.cclass中,我运行了以下命令。其中cp是类路径和。表示仅签入当前目录。

java -cp . hello.HelloWorld

输出

Hello world!