所以我在这里有一个菜鸟般的时刻,我以前从未使用过命令行来运行Java程序,但现在我需要。我遇到的问题是,当我尝试运行程序时,出现ClassNotFoundException。我的课叫做OmadUpdate。我已经使用javac命令将OmadUpdate.java文件编译为OmadUpdate.class。我已经检查了目录,并且它们都绝对存在,但是当我运行java OmadUpdate命令时,它给了我一条错误消息,提示
Exception in thread "main" java.lang.NoClassDefFoundError: OmadUpdate (wrong name: org/openmetadata/main/OmadUpdate) ...... ...... Could not find the main class: OmadUpdate. Program will exit
但是它在目录中。当我键入dir时,我同时拥有OmadUpdate.class和OmadUpdate.java。我什至尝试使用“ java org.openmetadata.main.OmadUpdate”,因为这是它所在的包名称。我很沮丧。感谢您的协助。
您的课程似乎已在org.openmetadata.main包中声明。
org.openmetadata.main
为了使Java正确加载该类,它必须位于与包结构匹配的正确目录结构中。
因此,的类文件org.openmetadata.main.OmadUpdate应该在目录中org\openmetadata\main。
org.openmetadata.main.OmadUpdate
org\openmetadata\main
然后,当您运行java命令时,此目录结构的根目录应位于类路径上-对于一个简单的示例,这仅意味着您的当前目录应为的父目录 org\openmetadata\main。
java
运行时,java您需要使用句号而不是斜杠来指定完整的类名,即
java org.openmetadata.main.OmadUpdate