新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
类文件位置:C:\test.com\company
文件名:Main.class
完全限定类名:com.company.Main
命令行命令:
java -classpath "C:\test" com.company.Main
请注意,类路径不包括.com\company。
其他回答
2022年之前的Java新版本为Java18。您只需编写package关键字和文件夹名称,其中包含java扩展文件和分号,如下所示:
包JavaProgramming;
因为我在JavaProgramming文件中有hello.java文件。注意:在为java编写文件夹名时,不要给空格。像Java编程一样,你必须保持它的样子;Java编程等;
简单hello世界的整个代码结构如下所示:
package JavaProgramming;
public class hello {
public static void main(String[] args) {
System.out.println("Hello java after long time");
}
}
在我的例子中,出现错误是因为我提供了源文件名而不是类名。
我们需要向解释器提供包含main方法的类名。
默认情况下,Java使用。,当前工作目录,作为默认CLASSPATH。这意味着,当您在提示符处键入命令(例如javaMyClass)时,该命令将被解释为您键入了java-cp。我的班级。你看到-cp和MyClass之间的点了吗?(cp是较长类路径选项的缩写)
这在大多数情况下都是足够的,在您尝试向CLASSPATH添加目录之前,一切似乎都很正常。在大多数情况下,当程序员需要这样做时,他们只需运行一个命令,比如set CLASSPATH=path \to\some\dir。此命令创建一个名为CLASSPATH的新环境变量,该变量的值为path\to\some\dir,或者如果以前已设置CLASSPATH,则将其值替换为path \to\sme\dir。
完成后,您现在有了一个CLASSPATH环境变量,Java不再使用默认的类路径(.),而是使用您设置的类路径。所以第二天你打开编辑器,写一些java程序,cd到你保存它的目录,编译它,并尝试用命令javaMyClass运行它,你会得到一个很好的输出:找不到或加载主类。。。(如果您的命令以前工作得很好,现在得到了这个输出,那么您可能就是这样)。
发生的情况是,当您运行命令javaMyClass时,java会在CLASSPATH中设置的一个或多个目录中搜索名为MyClass的类文件,而不是当前工作目录,因此在那里找不到您的类文件并因此发出抱怨。
你需要做的是添加。这可以通过命令集CLASSPATH=%CLASSPATH%;来完成;。(注意分号后的点)。在纯英语中,此命令表示“选择CLASSPATH(%CLASSPATH%)的初始值,将.添加到(;.),并将结果分配回CLASSPATH”。
瞧,您再次能够像往常一样使用命令javaMyClass。
这是一个具体的案例:
Windows(通过Windows7测试)不接受类和包名称中的特殊字符(如á)。不过,Linux确实如此。
我在NetBeans中构建.jar并尝试在命令行中运行时发现了这一点。它在NetBeans中运行,但不在命令行上运行。
有时,在您可能尝试过的一些在线编译器中,如果不编写公共类[Classname],而只编写类[Classname],则会出现此错误。