从脚本文件中调用jar文件中的函数

时间:2016-03-21 08:00:38

标签: java bash function class jar

我有一个包含MyFinder.class的jar名称MyJar.jar。该类包含一个名为myFind()的非静态函数。我想从shell脚本调用myFind()。

我已经知道如何使用:

在jar文件中使用静态main()调用特定的类

java -jar MyJar.jar MyFinder.class

我需要一些像上面这样可以调用非静态函数的命令

主要动机:

我有一个脚本文件,只有一个jar。 在脚本中我想根据特定时间进行函数调用。我可以在jar里面编写这个代码。但如果要求稍后更改,我必须编辑jar。我不希望这种情况发生,我只想编辑脚本文件,然后

1 个答案:

答案 0 :(得分:1)

唯一的方法是在类中包含一个main方法,调用所需的方法:

public static void main(String[] args) {
  MyFinder myFinder = new MyFinder();
  myFinder.myFind();
}

编辑:实际上,这不是唯一的方法,但实际上是唯一的实用方法..

编辑2: 如果您有多个方法可以调用,请将参数传递给方法:

public static void main(String[] args) {
  MyFinder myFinder = new MyFinder();
  if (args.length > 0) {
    switch (args[0]) {
      case "myFind":
        myFinder.myFind();
        break;
      case "methodB":
        myFinder.methodB();
        break;
      default:
        System.err.println("Unkown target");
        break;
    }
  }
}

这样称呼:java -jar MyJar.jar MyFinder.class myFind