【问题标题】:Java (Eclipse) reference to my own jar library won't resolveJava(Eclipse)对我自己的 jar 库的引用无法解决
【发布时间】: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


【解决方案1】:

我想通了。在创建这两个项目期间,我选择在每个项目中创建module-info.javafiles。我不得不承认我对我的 java 很生疏,我真的不知道这些是做什么的。我删除了两个module-info.java 文件,并且引用已解决。

【讨论】:

  • 拥有module-info.java 文件启用JPMS 并且您的依赖项必须位于Modulepath 而不是Classpath 以及@987654325 中@ 你必须添加一行 requires &lt;module-name&gt;; 才能访问此模块的某些内容。从项目 B 到项目 A 的依赖关系可以直接在 Projects 选项卡的 Java Build Path 对话框中指定,而无需创建/更新 JAR。
  • 感谢@howlger,我来自 .NET 背景,一直在与 Eclipse 等价的项目引用作斗争。这成功了!
猜你喜欢
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多