java - 尽管添加了库,IntelliJ 仍无法解析符号
问题描述
我正在创建一个外部库来在我的客户端/服务器程序之间共享代码。IntelliJ 似乎无法导入这个 jar 文件,我不明白为什么,我遵循了我在网上找到的所有建议。
我将 jar 添加到我的lib
文件夹中,并将其作为库添加到我的主模块中(它被称为“common”:
这是错误(在我使用User
or的每个实例上重复Packet
)。在导入语句中,它说“通用包不存在”:
我尝试过使缓存无效,但这似乎也不起作用。我在一个新项目上尝试了同样的导入,只是为了看看我是否做错了什么,并且它在那个新项目上运行良好,所以我不确定这里出了什么问题。
编辑:我注意到这个错误只发生在文件夹内包中的src
文件中。所以基本上,Main
可以找到 jar,因为它只在 src 文件夹中,但RegistrationController
不能因为它在src/communication
.
解决方案
问题是我正在制作的共享代码不在一个包中,只是一个src
文件夹。因此,我的默认包 ( src
) 中的代码可以访问类,但不能访问包中的代码。为了解决这个问题,我将共享类放在一个包 ( com
) 中,将它们导出为 jar,然后将其导入到我的项目中。现在,我的包可以成功地执行com.Packet
或com.User
获取文件。
推荐阅读
- php - 如何在单元测试中断言生成文件的内容
- python - python feedparser并在一个项目中获取多个类别(类别)
- android - 我的 Android Takeaway 应用程序不会在 Gmail 中填充主题和正文,但可以与 Outlook 配合使用
- python - 使用多处理时设置池映射操作的时间限制?
- postgresql - 在 Postgres 中设置 search_path 是否会阻塞?
- machine-learning - 如何在 pytorch 中从预训练模型创建子模型,而无需重写整个架构?
- database - 数据库应该避免删除资源吗?
- python - 从另一个 .py 导入变量而不运行模块
- javascript - 如何知道在多条件打字稿中哪个条件失败
- css - Angular 材质 Sass 通过全局 scss 文件上的 map-get 和深色主题动态获取样式