新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
在本例中,您有:
无法找到或加载主类?类路径
这是因为您使用的是“-classpath”,但破折号与java在命令提示符上使用的破折号不同。我遇到了从记事本复制和粘贴到cmd的问题。
其他回答
使用关键字“package”
如果源代码中有package关键字(主类在包中定义),则应使用类的全名(packageName.MainClassName)在分层目录中运行它。
假设有一个源代码文件(Main.java):
package com.test;
public class Main {
public static void main(String[] args) {
System.out.println("salam 2nya\n");
}
}
要运行此代码,应将Main.Class放在类似于包的目录中:
C: \Users\workspace\testapp.com\test\Main.Java
然后将终端的当前目录更改为项目的根目录:
cd C:\Users\workspace\testapp
最后,运行代码:
java com.test.Main
没有关键字“package”
如果您的源代码名称中没有任何包,那么可能是您使用了错误的命令。假设您的Java文件名为Main.Java,编译后:
javac Main.java
编译后的代码将是Main.class
如果使用以下方法调用它,则会出现该错误:
java Main.class
相反,请使用以下方法:
java Main
场景:使用命令提示符(Windows中的CMD)编译并运行一个简单的“java”程序,该程序只有“Main.java”文件,并指定了“packagemain”。
源文件路径:
某些项目名称文件夹\src\main\main.java
目标文件夹:
某些项目名称文件夹\dest
目标文件路径(文件夹'\main'和文件'\main.class'将由'javac'生成):
某些项目名称文件夹\dest\main\main.class
Main.java如下:
package main;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
编制:
// 'javac' compiler will produce 'Main.class' in the 'dest\main' folder.
// 'main' folder is created because in the source file(in our case: 'Main.java') is
// specified 'package main'.
javac -d ./dest ./src/main/Main.java
运行编译文件(在本例中为“Main.class”):
// '-cp'(is the same as '-classpath')
// './dest'(means destination folder, where resides compiled 'Main.class').
// 'main.Main'(means 'package' 'main', which contains class 'Main'('Main.class'))
// WARNING: when run 'java' class, MUST NOT type extension '.class'
// after 'class name
// (in our case: 'main.Main'(<package>.<class-name>) WITHOUT extension
// '.class').
java -cp ./dest main.Main
// Hello world
如果您的情况与我的情况特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题。
我是这样编译的:
javac HelloWorld.java
我也尝试使用相同的扩展名运行:
java Helloworld.java
当我删除.java并重写类似javaHelloWorld的命令时,程序运行得很好。:)
在项目上单击鼠标右键。
选择“打开模块设置”将src文件夹标记为“sources”转到编辑配置,然后选择主类单击“确定”或“应用”按钮
这对我有用。
我无法用这里所述的解决方案来解决这个问题(尽管所述的答案无疑澄清了我的概念)。我两次面对这个问题,每次都尝试了不同的解决方案(在EclipseIDE中)。
首先,我在项目的不同类中遇到了多种主要方法。因此,我已经从随后的类中删除了main方法。其次,我尝试了以下解决方案:右键单击我的主项目目录。前往源代码,然后清理并使用默认设置并单击“完成”。完成一些后台任务后,您将被引导到主项目目录。在那之后,我关闭了我的项目,重新打开它,然后,我终于解决了我的问题。