【发布时间】:2019-11-15 19:51:42
【问题描述】:
我有一个 Eclipse 工作区。我在它下面有两个相同级别的java项目。一个(项目 A)是一个我使用库并使用 Eclipse UI 手动导出到 jar 文件的项目。另一个(项目 B)是一个 java 项目,我打算将其导出为带有 Main 函数的可运行 jar 文件 - 本质上是一个使用我的库的示例项目。两者都使用 JavaSE-12 作为 JRE 参考。
结构如下:
- Project A
- com.mystuff.api (package)
- MyAPIClass.java
- Referenced Libraries
- <3rd Party jar>
- dist
- com.mystuff.api.jar (exported library jar file)
- module-info.java
- Project B
- com.mystuff.sample (package)
- MyApp.java (Main defined here)
- Referenced Libraries
- ('Add Lib' Refernce to Project A/dist/com.mystuff.api.jar)
- module-info.java
现在在 MyApp.java 我尝试创建 MyAPIClass 的一个实例(来自项目 A 的公共类)
package com.mystuff.sample;
import com.mystuff.api.MyAPIClass;
public class MyApp {
public static void main(String[] args) {
MyAPIClass obj = new MyAPIClass();
}
}
但是我得到一个 import 语句的编译错误:
The type com.mystuff.api.MyAPIClass is not accessible
但我可以浏览 Project B/Referenced 库下的 JAR 文件并查看 MyAPIClass!
有没有更好的方法来引用我的库项目 A jar 文件以确保项目 B 可以解析其类型?
【问题讨论】:
-
您是如何在项目 B 中引用
com.mystuff.api.jar的?是通过 Project -> Properties -> Build path -> Add External Jar 吗? -
关闭,项目 -> 属性 -> 添加 Jar -> 导航到
/Project A/dist/com.mystyuff.api.jar -
@PasupathiRajamanickam 仅供参考,添加外部 Jar 也不起作用
-
看起来一切都很好,但在某处隐藏了一些错误,如果我们检查 Window -> Show view -> Markers { java build path questions or Java questions (也许过滤项目 A 或 B }
标签: java eclipse shared-libraries