我可以运行 println hello world
在 Eclipse 控制台 View 中程序正常,无论是否包含包。
如果我尝试从命令行运行,我只能运行在没有包的情况下创建的类文件。
在这两种情况下,我都将命令行目录更改为类文件的位置。如果我在包内创建该类,我会得到 Exception in thread "main" java.lang.NoClassDefFoundError:
我对此进行了很多研究,很多人都在谈论类路径。如果你要谈论这个,请非常具体。我所知道的只是
1)安装java时必须在环境变量中设置路径
2)有一个类路径文件,与我的包的 bin 和 src 文件夹位于同一文件夹中。(不知道这是什么)
3) 如果在 Eclipse 中右键单击包或类并选择构建路径,则会出现 Java 构建路径的属性。这里有源、项目、库以及订单和导出选项卡。我不知道这些有什么作用。
再次强调,如果您要提供任何涉及任何类型的路径或类路径的建议,请针对新手提供非常具体的信息。谢谢。
最佳答案
Java 需要类的完整路径(包括包)才能运行程序。因此,如果您的类位于诸如以下的包结构中:
abc.xyz.MyClass
然后在运行时您需要提供以下路径:
java abc.xyz.MyClass
但是如果您的类位于默认包中,那么您只需使用以下命令即可运行它
java MyClass
Eclipse 是一个让您的生活更轻松的 IDE,因此当您在 Eclipse 中运行类时,它会在幕后使用正确的包+类名来启动您的文件。 IDE 的存在是为了让您的生活更轻松,因此 eclipse 就是这样做的。
关于Java:如果我不包含包,我可以在命令提示符下运行,如果我包含包,我会收到 no class found 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23356731/