Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java(Eclipse)对我自己的jar库的引用赢得了';无法解决_Java_Eclipse_Shared Libraries - Fatal编程技术网

Java(Eclipse)对我自己的jar库的引用赢得了';无法解决

Java(Eclipse)对我自己的jar库的引用赢得了';无法解决,java,eclipse,shared-libraries,Java,Eclipse,Shared Libraries,我有一个Eclipse工作区。我有两个java项目在它下面的同一级别。一个(项目A)是我使用库并使用EclipseUI手动导出到jar文件的项目。另一个(项目B)是一个java项目,我打算用Main函数导出为一个可运行的jar文件——本质上是一个使用我的库的示例项目。两者都使用JavaSE-12作为JRE参考 结构如下: - Project A - com.mystuff.api (package) - MyAPIClass.java - Refe

我有一个Eclipse工作区。我有两个java项目在它下面的同一级别。一个(项目A)是我使用库并使用EclipseUI手动导出到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
但是我得到了import语句的编译错误:

The type com.mystuff.api.MyAPIClass is not accessible   
但是我可以浏览ProjectB/引用库下的JAR文件并查看MyAPIClass


有没有更好的方法来引用我的库项目a jar文件,以确保项目B可以解析其类型?

我找到了。在创建这两个项目的过程中,我选择在每个项目中创建
module info.java
文件。我必须承认,我对我的java非常生疏,我真的不知道这些是做什么的。我删除了
module info.java
两个文件,并解决了引用问题。

您是如何引用项目B中的
com.mystuff.api.jar
?是否按项目->属性->构建路径->添加外部Jar?关闭,项目->属性->添加Jar->导航到/Project A/dist/com.mystyuff.api。jar@PasupathiRajamanickam仅供参考,添加外部Jar不起作用,尽管看起来一切正常,但隐藏了一些错误,如果我们选中“窗口->显示视图->标记”,它将非常有用{java构建路径问题或java问题(可能是筛选项目A或B}拥有
module info.java
文件将启用,并且您的依赖关系必须位于Modulepath上,而不是
module info.java
中的Classpath plus上。您必须添加一行
requires;
才能访问此模块的某些内容。可以在java Bu中直接指定从项目B到项目a的依赖关系“项目”选项卡中的ild Path对话框,无需创建/更新JAR。谢谢@howlger,我来自.NET背景,正在与eclipse等效的项目引用进行斗争。这就成功了!
The type com.mystuff.api.MyAPIClass is not accessible