Java:如果我不包含包,我可以在命令提示符下运行,如果我包含包,我会收到 no class found 错误

标签 java eclipse path command noclassdeffounderror

我可以运行 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/

相关文章:

java - 使用 java 检查 Internet 连接,无需 URL 测试连接

eclipse - 使用 Eclipse 发布 tomcat 7.0

java.util.ConcurrentModificationException : Unexpected List modification while multithreading?

eclipse - - 从终端清洁启动 ubuntu 中的 Eclipse

Python & OpenERP 开发环境设置 howto?

windows-7 - Windows7忽略部分路径(在我的例子中是powershell)

java - 如何在 POST 期间获取不同资源的 JAX-RS @Path?

iOS Swift 描边宽度

java - 使用 HttpURLConnection 发送帖子

java - 使用特定年份过去的天数获取一年中的月份和星期几