新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
我有一个奇怪的:
错误:无法找到或加载主类mypackage.App
结果发现,我的项目的POM.xml文件中编码了对POM(父级)的引用(我的项目POM.xml指向父级POM.xml),并且relativePath关闭/错误。
以下是我项目pom.xml文件的一部分:
<parent>
<groupId>myGroupId</groupId>
<artifactId>pom-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../badPathHere/pom.xml</relativePath>
</parent>
一旦我解决了POM relativePath,错误就消失了。
想想看吧
其他回答
首先使用此命令设置路径;
set path="paste the set path address"
然后需要加载程序。在存储的驱动器中键入“cd(文件夹名)”并编译它。例如,如果我的程序存储在D驱动器上,请键入“D:”,然后按enter键并键入“cd”(文件夹名称)。
您确实需要从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
在我的例子中,我得到了错误,因为我在Windows7系统上混合了大写和小写的包名。将包名称改为全小写解决了问题。还要注意,在这个场景中,我将.java文件编译为.class文件时没有出错;它不会从同一个(sub-sub-sub)目录运行。
在命令行上指定类路径对我有帮助。例如:
创建新文件夹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您好!
如果类在包中,则必须cd到项目的根目录,并使用类的完全限定名称(packageName.MainClassName)运行。
例子:
我的课程在这里:
D:\project\com\cse\
我的主类的完全限定名称是:
com.cse.Main
所以我回到根项目目录:
D:\project
然后发出java命令:
java com.cse.Main
这个答案是为了帮助新手Java程序员摆脱一个常见错误带来的挫折。我建议您阅读公认的答案,以获得有关Java类路径的更深入的知识。