我是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中也运行良好。我已经多次搜索此问题,但没有找到解决方案,但是我可能以某种方式错误地使用了这些解决方案。
谢谢您的时间。
我假设Test.java
的第一行是:
package learning;
要在编译该类后运行该类,您需要位于myfolder\eclipse\learning\src
目录中。然后用java learning.Test
运行它。这是因为您已经在包内部创建了该类,如包声明所示。 Eclipse旨在了解软件包,并自动为您执行正确的操作。这就是为什么您不会在Eclipse中运行任何错误的原因。
编译如下:
myfolder\eclipse\learning\src\learning\>javac -d . Test.java
按如下方式运行:
myfolder\eclipse\learning\src\learning\>java learning.Test
注意:
-d
指定放置生成的类文件的位置。.
代表当前目录[请注意,如果您使用的是Java 11,即使不进行编译也可以将其直接作为java Test.java
运行。勾选this了解更多信息。