从cmd运行时遇到java.lang.NoClassDefFoundError的问题(名称错误:)

问题描述 投票:0回答:2

我是Java的新手,正如标题所述,我正在努力从cmd运行我的Test程序(基本上只是一个hello world程序),我正在使用myfolder\eclipse\learning\src\learning目录存储我的项目classes / .java文件。我收到错误

Caused by: java.lang.NoClassDefFoundError: learning/Test (wrong name: Test)

我不确定为什么,我完成了“ javac Test.java”,这很好,但是每当我尝试“ java Test”时,我都会得到该错误。我也尝试过“ java Test.class”,但这只是给了我一个错误

Caused by: java.lang.ClassNotFoundException: Test.class

该类在Eclipse中也运行良好。我已经多次搜索此问题,但没有找到解决方案,但是我可能以某种方式错误地使用了这些解决方案。

谢谢您的时间。

java
2个回答
0
投票

我假设Test.java的第一行是:

package learning;

要在编译该类后运行该类,您需要位于myfolder\eclipse\learning\src目录中。然后用java learning.Test运行它。这是因为您已经在包内部创建了该类,如包声明所示。 Eclipse旨在了解软件包,并自动为您执行正确的操作。这就是为什么您不会在Eclipse中运行任何错误的原因。


0
投票

编译如下:

myfolder\eclipse\learning\src\learning\>javac -d . Test.java

按如下方式运行:

myfolder\eclipse\learning\src\learning\>java learning.Test

注意:

  1. [-d指定放置生成的类文件的位置。
  2. .代表当前目录

[请注意,如果您使用的是Java 11,即使不进行编译也可以将其直接作为java Test.java运行。勾选this了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.