【问题标题】:How to import the classes within a jar file in the folder of resources, to another class within a package?如何将资源文件夹中的jar文件中的类导入包中的另一个类?
【发布时间】:2021-07-20 14:12:07
【问题描述】:

我使用 Intellj 创建了一个项目(实际上是 Spring,但我发现这个问题在 Java 项目和 Spring 项目之间没有任何关系),其层次结构如下:

  • 项目名称
    • 源代码
      • 主要
        • java
          • com.x.y
            • controller_package
              • controller_class.java
            • model_package
              • model_class.java
        • 资源
          • THIS.JAR

不太明白,在java目录的层面上,我可以创建一个java类,可以直接使用THIS.JAR中的类>,而那些包中的文件,即 controller_class.java,我在 THIS.JAR中找不到 java 类>。在前一种情况下,当我在 THIS.JAR 中输入 THAT_CLASS 时,工具提示会弹出 Default package

this.jar是我自己在另一个项目中创建的jar文件,我用的是Maven,pom.xml已经配置好了。此 .jar 包含一些其他模块,例如 postgresql/antlr。但在 java 目录controller_package 的两个级别上,我都可以导入这些模块。我四处寻找,没有找到解决办法。作为 Java 新手,它毁了我的一天,请问有没有人可以提供帮助?

【问题讨论】:

  • 您在“this.jar”中的类似乎在默认包中(即没有package x.y; 语句)。根据stackoverflow.com/questions/283816/…,您不能从包内的类中使用默认包中的类。
  • 使用 Maven 时,只需将您的库作为依赖项添加到您的 pom.xml 中。永远不要向资源中添加 JAR。
  • @ThomasKläger this.jar中我想要的类完全没有com.xxx.yyy这样的形式,包含的可以导入的类都是com.xxx.yyy的形式。我想这就是原因...但是我不太确定如何在 IDEA 中将该项目打包成 x.y 的形式,因为我需要 ANTLR4 并且很难更改目录...
  • @ThomasKläger 我尝试使用反射,但似乎无法在默认包中找到类......奇怪。无论如何,非常感谢
  • @GyroGearless 感谢您的建议。在多次尝试配置 pom.xml 之后,我认为默认包是原因

标签: java spring maven jar


【解决方案1】:

如果使用 Eclipse

你可以添加jar文件

1-选择右键单击您的项目并选择属性

2-选择java构建路径

3- 选择模块路径,然后点击添加外部 JARS

然后检查 JRA 系统库 jra文件是否存在

【讨论】:

    猜你喜欢
    • 2013-12-07
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    相关资源
    最近更新 更多