Java包不存在错误

49

所以,在根目录下有一个名为/usr/share/stuff的文件夹。

在stuff文件夹中,有许多带有顶部package org.name定义的java文件。

我正在运行javac test.java,其中test.java位于子域中。

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

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

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


2
假设您已将Java文件编译到正确的目录中(类文件位于“/usr/share/stuff/org/name”中),您还需要将实际文件或通配符导入test.java('import org.name.MyClass'或'import org.name.*')。如果您只是执行'import org.name',则会发生此错误(问我怎么知道的笑)。 - Rdesmond
1
这是一个运行时异常还是编译时异常? - Shiva kumar
13个回答

33

仅重新导入无效,以下是我的解决方法。

文件 -> 无效缓存/重启

然后

构建 -> 重新构建项目

这将重新导入Maven项目。


1
很有用。对我起作用了。 - Soumik Das

32

他们是否在正确的子目录中?

如果你把/usr/share/stuff放到类路径上,那么以package org.name定义的文件应该在/usr/share/stuff/org/name中。

编辑:如果你还不知道这个,那么你应该阅读一下了解类路径的文档

编辑2:对不起,我之前没意识到你是在谈论位于/usr/share/stuff中的Java源代码文件。它们不仅需要位于适当的子目录中,而且你需要编译它们。.java文件不需要在classpath上,而是在源路径上。(生成的.class文件需要在classpath上。)

如果它们没有位于正确的目录结构下,你可能可以通过编译它们来摆脱错误,但至少会生成警告。生成的类文件将位于正确的子目录中(如果你指定了-d的话)。

你应该使用类似于javac -sourcepath .:/usr/share/stuff test.java这样的东西,假设你已经把位于/usr/share/stuff下的.java文件放在了/usr/share/stuff/org/name下(或根据它们的包名适当地放置)。


谢谢!...但这仍然不起作用...我已经这样做了,但它仍然显示找不到包。在子域上编辑类路径是否足够,还是需要在根目录中进行编辑? - algorithmicCoder

4

我遇到了一个问题,当我在我的应用程序中尝试使用以.jar打包的主题时,在调试应用程序时它可以工作,但是在构建/导出应用程序时它就不能正常工作。

我通过解压缩 jar 文件并将其内容手动添加到我的构建文件夹中来解决这个问题,最终结果如下:

project/
   │
   ├── build 
   │   └── classes
   │       ├── pt
   │       │   └── myAppName ... 
   │       └── com
   │           └── themeName ...
   ├── src
   └── lib

我不再有错误,并且我的应用程序已经使用预期的主题加载。


3
这个方法可以工作,但不是正确的做法;相反,您应该在导出时更改设置,将.jar包包含在您的.jar包中。 - SpacePrez

2
您需要在 /usr/share/stuff 目录下创建 org/name 文件夹,并将 org.name 包源代码放置在该文件夹中。

2

右键单击您的Maven项目,在下拉列表底部,选择 Maven >> 重新导入

对于缺失的依赖项,这对我很有效


2

当我通过命令行手动编译时,我遇到了完全相同的问题。我的解决方案是没有包括-sourcepath目录,这样所有子目录中的Java文件也会被编译!


0

如果您使用的是2020版本,那么您很可能遇到了像我一样的错误。尝试了多种方法,但对我有帮助的是一个非常简单的方法。 设置 -> 构建、执行、部署 -> 构建工具 -> Maven。 选中本地存储库的覆盖,但保留默认值。应用,确定。您可能会收到错误提示,这没关系。只需在屏幕右侧的Maven选项卡上按下“重新加载所有Maven项目”按钮(两个圆形箭头,看起来像普通的刷新按钮)。也许需要清理和安装。之后应该就可以正常工作了。


0
我来到这个问题是因为将一个文件从一个文件夹移动到另一个文件夹导致了这个错误。修复它的命令如下所示。我在多个目录中有相同的包,但它只查看其中一个目录。
所以,如果这是一个Maven项目,请尝试mvn clean install --update-snapshots

0

我解决了。在IntelliJ IDEA中:

  1. 进入项目结构
  2. 选择SDK并确保您的JDK主目录路径是实际的JDK路径
  3. 然后使用Maven clean install命令

这样就解决了我的问题!


0
在IntelliJ中,对我来说解决方案是右键单击项目文件夹 > 运行Maven > 重新导入项目。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接