新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。
这意味着什么,是什么导致的,你应该如何解决?
当前回答
我以为我不知怎么设置了错误的类路径,但问题是我键入了:
java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool
而不是:
java -cp C:/java/MyClasses utilities/myapp/Cool
我认为完全限定的意思是包含完整的路径名而不是完整的包名。
其他回答
在Java中,当您有时使用Java解释器可执行文件从命令行运行JVM,并试图从具有公共静态void main(PSVM)的类文件启动程序时,即使JVM的类路径参数是准确的,并且类文件存在于类路径中,也可能会遇到以下错误:
错误:未找到或加载主类
如果无法加载带有PSVM的类文件,就会发生这种情况。一个可能的原因是该类可能正在实现一个接口或扩展不在类路径上的另一个类。通常,如果类不在类路径中,则抛出的错误会指示这一点。但是,如果正在使用的类被扩展或实现,Java将无法加载该类本身。
参考:https://www.computingnotes.net/java/error-main-class-not-found-or-loaded/
类文件位置:C:\test.com\company
文件名:Main.class
完全限定类名:com.company.Main
命令行命令:
java -classpath "C:\test" com.company.Main
请注意,类路径不包括.com\company。
当相同的代码在一台电脑上运行,但在另一台电脑中显示错误时,我找到的最佳解决方案是如下编译:
javac HelloWorld.java
java -cp . HelloWorld
对于数据库连接,我得到了这个。我刚刚在类路径中添加了以下内容:
export CLASSPATH=<path>/db2jcc4.jar:**./**
我在这里附上了。/最后,这样我的类在加载时也会被识别。
现在只需运行:
java ConnectionExample <args>
它工作得很好。
在Windows上放置。;在开头的CLASSPATH值处。
这个(dot)表示“查看当前目录”。这是一个永久的解决方案。
此外,您还可以通过设置CLASSPATH=%CLASSPATH%;将其设置为“一次”;。。这将在cmd窗口打开时持续。