新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
我无法用这里所述的解决方案来解决这个问题(尽管所述的答案无疑澄清了我的概念)。我两次面对这个问题,每次都尝试了不同的解决方案(在EclipseIDE中)。
首先,我在项目的不同类中遇到了多种主要方法。因此,我已经从随后的类中删除了main方法。其次,我尝试了以下解决方案:右键单击我的主项目目录。前往源代码,然后清理并使用默认设置并单击“完成”。完成一些后台任务后,您将被引导到主项目目录。在那之后,我关闭了我的项目,重新打开它,然后,我终于解决了我的问题。
其他回答
我以为我不知怎么设置了错误的类路径,但问题是我键入了:
java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool
而不是:
java -cp C:/java/MyClasses utilities/myapp/Cool
我认为完全限定的意思是包含完整的路径名而不是完整的包名。
在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正确处理类路径参数。
[Java版本:11]
如果您使用的是Java11,则不需要编译和运行Java文件。
就像跑步一样
Java类名.Java
例子:
class abc{
public static void main(String[] args){
System.out.println("hello Jarvis ");
}
}
现在运行命令
java abc.java
在命令行上指定类路径对我有帮助。例如:
创建新文件夹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您好!
我遇到了同样的问题,最终发现了我的错误:)我使用此命令进行编译,并且运行正常:
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