如何从多个包装中创建一个罐子?

时间:2019-09-10 12:16:14

标签: java

我想从多个包中创建一个jar文件。我已经使用下面的命令创建了jar,但是当我将其作为依赖项导入到项目中时,它将无法正常工作。

jar cfe output/jar/my-java.jar Main src/pkg1/pkg0/*.class src/pkg1/*.class src/pkg2/*.class

我的项目结构类似于下面的结构

src
  pkg1
    A.java
    B.JAVA
    pkg0
     E.java
   pkg2
    C.java
    D.java

我的示例代码类似

import pkg1.A;

public class Main {
    public static void main(String[] args) {
        A.printMe("Hello World");
    }
}

我遇到的错误是:

  

java pkg1不存在   但是在编辑器(IntelliJ)中,它没有显示错误,并且我也能够导入类而不是包。

  • 导入pkg1:显示红色表示编辑器错误
  • 导入pkg1.A:未显示红色表示编辑器中没有错误

注意:我不想使用Maven。

2 个答案:

答案 0 :(得分:2)

unzip -t something.jar显示了jar文件(zip)的实际文件结构。它与它的类结构相同(除了用“ /”代替,而用“ .”作为分隔符)。

在您的情况下,问题将是src位于顶层,而不是pkg1。要么导入src.pkg1(非常脏),要么使用目录/ jar标志更多播放。

答案 1 :(得分:0)

如果将jar正确放置在当前项目中,只需调用方法自动获取路径。项目1

 pkg com.test.demo
 class test{
 public static void m1(){
 System.out.println("project 1 in method 1 );
 }
 }
 in project 2 put jar of project 1
 pkg com.test.demo
 class Test1{
 public static void main(String...){
 System.out.println(test.m1())
 }


  }