Java 包不存在错误

新手上路,请多包涵

所以在根目录下有一个文件夹 /usr/share/stuff

在东西中有一堆 java 文件,顶部有 package org.name 定义

我正在运行 javac test.java 其中 test.java 在子域中

我将 /usr/share/stuff 添加到我的类路径中。

test.java 的顶部,我添加 import org.name

但是我得到一个 package does not exist 错误…为什么?

原文由 algorithmicCoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 555
2 个回答

它们在正确的子目录中吗?

如果将 /usr/share/stuff 放在类路径上,则用 package org.name 定义的文件应该在 /usr/share/stuff/org/name 中。

编辑:如果你还不知道这一点,你应该阅读 这篇关于理解类路径的文档

编辑 2 :抱歉,我没有意识到您在 /usr/share/stuff 中谈论 Java 源文件。不仅它们需要位于适当的子目录中,而且您还需要编译它们。 .java 文件不需要在 类路径 中,而是在 源路径 中。 (生成的 .class 文件需要在 类路径 中。)

如果它们不在正确的目录结构下,您可能会逃避编译它们,但它们应该在正确的目录结构下,否则它至少会生成警告。生成的类文件将位于正确的子目录中(无论您在何处指定 -d 如果有的话)。

You should use something like javac -sourcepath .:/usr/share/stuff test.java , assuming you’ve put the .java files that were under /usr/share/stuff under /usr/share/stuff/org/name (or whatever is appropriate根据他们的包名)。

原文由 Bruno 发布,翻译遵循 CC BY-SA 4.0 许可协议

只是重新导入没有用。以下为我工作。

文件 -> 使缓存无效/重新启动

然后

构建 -> 重建项目

这将重新导入 maven 项目。

原文由 Dzmitry Darashuk 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题