新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
在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正确处理类路径参数。
其他回答
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");
}
}
这件事也发生在我身上。在我的例子中,只有在源代码中存在HttpServlet类时才会发生这种情况(IntelliJ IDEA没有给出编译时错误;servlet包导入得很好,但是在运行时出现了这个主类错误)。
我设法解决了。我进入菜单“文件”→ 项目结构…:
然后到模块:
servlet模块附近有一个提供的作用域。我将其更改为编译:
而且成功了!
如果您的包名为javatpoint,包名为com.javatpoint,类名为AnotherOne,那么编译您的类,如下所示:
cd C:\Users\JAY GURUDEV\eclipse-workspace\javatpoint\src\com\javatpoint
javac AnotherOne.java
并使用
cd C:\Users\JAY GURUDEV\eclipse-workspace\javatpoint\src
java com.javatpoint.AnotherOne
(此处应排除包名称。)
关于外部库的回答-
编译:
javac -cp ./<external lib jar>: <program-name>.java
执行:
java -cp ./<external lib jar>: <program-name>
上述方案在OS X和Linux系统中运行良好。注意类路径中的:。
我在IntelliJ中创建的演示程序遇到了这个问题。
解决这个问题有两个关键点:
程序的包名终端/cmd提示符的当前工作目录
我的演示程序:
package io.rlx.tij.c2;
public class Ex10 {
public static void main(String[] args) {
// do something
}
}
源代码路径:
../projectRoot/src/main/java/io/rlx/tij/c2/Ex10.java
转到java目录:cd/项目根/src/main/java编译到类:javac/io/rlx/tij/c2/Ex10.java运行程序:java io.rlx.tij.c2.Ex10
如果我在..中运行程序/projectRoot/src/main/java/io/rlx/tij/c2或我在没有包名的情况下运行它,我将收到以下错误:错误:无法找到或加载主类。