我如何创建 .JAR 来执行特定任务,然后在另一个项目中使用这个 JAR?

How can I create .JAR to Do a specific task , then use this JAR in another project?

例如:我有一个简单的代码,它采用数字数组列表并计算总和。我创建了此代码的 .JAR。现在我的问题是如何将这个 JAR 导入另一个项目并将数组列表传递给它,然后 JAR 给我结果以重用它??

假设您有 sum.jar 尝试 运行 您的应用程序 -classpath sum.jar 这将可以从您的应用程序导入 classed/calling sum.jar 中的代码。

这是一个例子 1- 在目录 com\mycompany\myproject 中创建 Task.java

package com.mycompany.myproject;

import java.util.*;

public interface Task{

  public int sum(List<Integer> list);

}

2- 在目录 com\mycompany\myproject\support 中创建 MyTask.java

package com.mycompany.myproject.support;

import java.util.*;
import com.mycompany.myproject.Task;

public class MyTask implements Task{

 public int sum(List<Integer> list){
  
  int variable = 0;
 
  for(int i: list){
       variable += i;
  }
 
  return variable;
 }

}

3- 使用命令 $javac com/mycompany/myproject/Task.java 和命令 $javac com/mycompany/myproject/support/MyTask 编译 .java。 java

4- 使用命令 $jar -cvf task.jar com/mycompany/myproject/Task.class com/mycompany/myproject/support/MyTask.class 创建 .jar 文件 (我决定将“任务”作为我的 .jar 文件的名称)

此时您已经创建了 .JAR,您可以在另一个项目中使用它。让我们看看如何去做。

5- 把你的 task.jar 文件放在你定义 CLASSPATH 系统变量的地方

6- 在任意目录下创建Main.java。

import java.util.*;
import com.mycompany.myproject.*;
import com.mycompany.myproject.support.*;


public class Main{

  public static void main(String arg[]){
    
  //create the implementation you want  
  Task task = new MyTask();
  
  LinkedList<Integer> list = new LinkedList<Integer>();
  
  list.add(8);
  list.add(9);
  list.add(10);
  list.add(2);
  
  int result = task.sum(list);
  
  System.out.println(result);
  
 }

}

7- 用 $javac Main.java

编译 Main.java

8- 获取 Main.class(Main.java 的编译结果)并将其放在您定义 CLASSPATH 系统变量的位置。

9- 进入 CLASSPATH 目录并执行命令 $java Main