我有一个包含MyFinder.class的jar名称MyJar.jar。该类包含一个名为myFind()的非静态函数。我想从shell脚本调用myFind()。
我已经知道如何使用:
在jar文件中使用静态main()调用特定的类 java -jar MyJar.jar MyFinder.class
我需要一些像上面这样可以调用非静态函数的命令
主要动机:
我有一个脚本文件,只有一个jar。 在脚本中我想根据特定时间进行函数调用。我可以在jar里面编写这个代码。但如果要求稍后更改,我必须编辑jar。我不希望这种情况发生,我只想编辑脚本文件,然后
答案 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