Java 包不存在错误
Posted
技术标签:
【中文标题】Java 包不存在错误【英文标题】:Java Package Does Not Exist Error 【发布时间】:2011-09-16 12:57:01 【问题描述】:所以在根目录下有一个文件夹/usr/share/stuff
在里面有一堆 java 文件,顶部有 package org.name
定义
我正在运行javac test.java
,其中test.java
在子域中
我将/usr/share/stuff
添加到我的课程路径中。
在test.java
的顶部添加import org.name
但我收到 package does not exist
错误...为什么?
【问题讨论】:
假设你已经把java文件编译到了正确的目录(类文件在“/usr/share/stuff/org/name”),你还需要将实际文件或者通配符导入到test.java('import org.name.MyClass' 或 'import org.name.*')。如果您只是执行“import org.name”,则会发生此错误(请问我是怎么知道的,哈哈) 这是运行时异常还是编译时异常? 【参考方案1】:它们在正确的子目录中吗?
如果您将/usr/share/stuff
放在类路径中,则使用package org.name
定义的文件应该在/usr/share/stuff/org/name
中。
编辑:如果您还不知道这一点,您可能应该阅读this doc about understanding classpath。
编辑 2:抱歉,我没有意识到您在谈论 /usr/share/stuff
中的 Java 源文件。它们不仅需要位于适当的子目录中,而且您需要编译它们。 .java
文件不需要位于类路径,而是位于源路径。 (生成的.class
文件需要在类路径中。)
如果它们不在正确的目录结构下,您可能不会编译它们,但它们应该是,否则至少会产生警告。生成的类文件将位于正确的子目录中(如果有,则在您指定 -d
的位置)。
您应该使用javac -sourcepath .:/usr/share/stuff test.java
之类的东西,假设您已将/usr/share/stuff
下的.java
文件放在/usr/share/stuff/org/name
下(或根据它们的包名称适当的任何内容)。
【讨论】:
谢谢!......这仍然没有工作......我已经这样做了,但它仍然说找不到包。编辑子域上的类路径就足够了吗?还是需要在根目录下编辑?【参考方案2】:只是重新导入不起作用。以下对我有用。
文件 -> 使缓存无效/重新启动
然后
构建 -> 重建项目
这将重新导入 maven 项目。
【讨论】:
这很有用。为我工作。【参考方案3】:我遇到了这个问题,在我的应用程序中尝试使用打包为 .jar
的主题时,它在调试应用程序时可以工作,但在构建/导出应用程序时却没有。
我通过解压缩jar
解决了这个问题,并将其内容手动添加到我的构建文件夹中,结果如下:
project/
│
├── build
│ └── classes
│ ├── pt
│ │ └── myAppName ...
│ └── com
│ └── themeName ...
├── src
└── lib
我不再有错误,我的应用加载了预期的主题。
【讨论】:
这可行,但方法错误;您应该改为更改设置以在导出时将 .jar 包含在 .jar 中。【参考方案4】:您需要将org/name
目录放在/usr/share/stuff
并将您的org.name
包源放在此目录中。
【讨论】:
【参考方案5】:我在通过命令行手动编译时遇到了完全相同的问题,我的解决方案是我没有包含 -sourcepath 目录,这样所有子目录的 java 文件也会被编译!
【讨论】:
【参考方案6】:右键单击您的 Maven 项目 在下拉列表的底部 Maven >> 重新导入
它适用于我缺少的依赖项
【讨论】:
【参考方案7】:如果您在使用 Kotlin 时遇到此问题并拥有
kotlin.incremental=true
kapt.incremental.apt=true
在 gradle.properties 中,然后您需要暂时删除它以修复构建。
构建成功后,您可以在使用 Kotlin 时再次添加这些属性以加快构建时间。
【讨论】:
【参考方案8】:您应该在您的 gradle 构建文件 (build.gradle) 中添加以下行
dependencies
compile files('/usr/share/stuff')
..
【讨论】:
【参考方案9】:如果您有 2020 版本,那么您很可能遇到了一个错误,就像我遇到的那个。尝试了多种方法,但帮助我的是一件非常简单的事情。 设置 -> 构建、执行、部署 -> 构建工具 -> Maven。 勾选 Override of Local Repository,但保留默认值。申请,好的。你可以得到一个错误,没关系。只需在屏幕右侧的 Maven 选项卡中按“重新加载所有 Maven 项目”按钮(两个圆形箭头,看起来像常规刷新按钮)。也许清洁和安装。之后应该可以工作。
【讨论】:
以上是关于Java 包不存在错误的主要内容,如果未能解决你的问题,请参考以下文章