新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
您确实需要从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
其他回答
解决我的问题的方法是:
右键单击要运行的项目/类,然后单击“运行方式”→ 运行配置。然后,您应该按照以下方式修复现有配置或添加新配置:
打开Classpath选项卡,单击Advanced。。。按钮,然后添加项目的bin文件夹。
好吧,已经有很多答案了,但没有人提到文件权限可能是罪魁祸首。
运行时,用户可能无法访问JAR文件或路径的某个目录。例如,考虑:
/dir1/dir2/dir3/myjar.Jar中的Jar文件
拥有JAR文件的用户1可以执行以下操作:
# Running as User1
cd /dir1/dir2/dir3/
chmod +r myjar.jar
但它仍然不起作用:
# Running as User2
java -cp "/dir1/dir2/dir3:/dir1/dir2/javalibs" MyProgram
Error: Could not find or load main class MyProgram
这是因为正在运行的用户(User2)无权访问dir1、dir2或javalibs或dir3。当User1可以看到文件并可以访问这些文件时,这可能会让某人发疯,但User2仍然会发生错误。
在IDE开发环境中(Eclipse、NetBeans或其他),您必须将项目财产配置为具有主类,以便IDE知道当您单击“Play”时要执行的主类的位置。
右键单击项目,然后单击财产转到跑步类别并选择您的主类别点击Run(运行)按钮。
如果类在包中,则必须cd到项目的根目录,并使用类的完全限定名称(packageName.MainClassName)运行。
例子:
我的课程在这里:
D:\project\com\cse\
我的主类的完全限定名称是:
com.cse.Main
所以我回到根项目目录:
D:\project
然后发出java命令:
java com.cse.Main
这个答案是为了帮助新手Java程序员摆脱一个常见错误带来的挫折。我建议您阅读公认的答案,以获得有关Java类路径的更深入的知识。
似乎当我遇到这个问题时,它是独一无二的。
一旦我删除了文件顶部的包声明,它就完美地工作了。
除此之外,似乎没有任何方法在我的机器上运行简单的HelloWorld.java,无论编译发生在哪个文件夹,CLASSPATH或PATH,参数或调用的文件夹。