小编典典

从命令行运行Java程序

java

所以我在这里有一个菜鸟般的时刻,我以前从未使用过命令行来运行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”,因为这是它所在的包名称。我很沮丧。感谢您的协助。


阅读 208

收藏
2020-11-01

共1个答案

小编典典

您的课程似乎已在org.openmetadata.main包中声明。

为了使Java正确加载该类,它必须位于与包结构匹配的正确目录结构中。

因此,的类文件org.openmetadata.main.OmadUpdate应该在目录中org\openmetadata\main

然后,当您运行java命令时,此目录结构的根目录应位于类路径上-对于一个简单的示例,这仅意味着您的当前目录应为的父目录
org\openmetadata\main

运行时,java您需要使用句号而不是斜杠来指定完整的类名,即

java org.openmetadata.main.OmadUpdate
2020-11-01