Java 如何使用另一个jar中的args运行main方法?
我想启动一个main(stringargs[])方法,它包含在我必须使用的*.jar中(不要问,我已经厌倦了)Java 如何使用另一个jar中的args运行main方法?,java,multithreading,Java,Multithreading,我想启动一个main(stringargs[])方法,它包含在我必须使用的*.jar中(不要问,我已经厌倦了) 从我自己的类(最好是在单独的线程中)调用此类main方法的最佳方法是什么?您可以将.jar添加到类路径,然后加载类并调用static main()方法。即: String[] args = new String[] {"-port", "8080"}; MainApp.main(args); 您可以将.jar添加到类路径中,然后加载该类并调用static Main()方法。即: St
从我自己的类(最好是在单独的线程中)调用此类main方法的最佳方法是什么?您可以将.jar添加到类路径,然后加载类并调用static main()方法。即:
String[] args = new String[] {"-port", "8080"};
MainApp.main(args);
您可以将.jar添加到类路径中,然后加载该类并调用static Main()方法。即:
String[] args = new String[] {"-port", "8080"};
MainApp.main(args);
有两种方法:
希望这会有所帮助。该类是否位于另一个jar文件中无关紧要。只要包含clas的jar在类路径中,就可以使用它。与所有其他静态方法一样,
main
是一个静态方法,因此,要调用它,请使用类的名称后跟方法的名称。它以字符串数组作为参数,因此需要将其传递为字符串数组。因此,假设MainApp
在包com.foo.bar
中,您只需要
import com.foo.bar.MainApp;
class MyInitClass {
public static void main(String args[]) {
MainApp.main(new String[] {"-port", "8080"});
}
}
这不会在另一个线程中调用主方法(不确定为什么需要)。如果要执行此操作,请创建一个线程并从线程或Runnable的
run()
方法调用MainApp.main()
。该类是否在另一个jar文件中无关紧要。只要包含clas的jar在类路径中,就可以使用它。与所有其他静态方法一样,main
是一个静态方法,因此,要调用它,请使用类的名称后跟方法的名称。它以字符串数组作为参数,因此需要将其传递为字符串数组。因此,假设MainApp
在包com.foo.bar
中,您只需要
import com.foo.bar.MainApp;
class MyInitClass {
public static void main(String args[]) {
MainApp.main(new String[] {"-port", "8080"});
}
}
这不会在另一个线程中调用主方法(不确定为什么需要)。如果要执行此操作,请创建一个线程并从线程或Runnable的
run()
方法调用MainApp.main()
。您可以尝试使用Process类启动jar应用程序
strPath = "java -jar <path>"
Process proc = Runtime.getRuntime().exec(strPath);
strPath=“java-jar”
Process proc=Runtime.getRuntime().exec(strPath);
strPath将是jar文件的路径。您可以将其包围在线程类中,使其在单独的线程中运行。您可以尝试使用Process类启动jar应用程序
strPath = "java -jar <path>"
Process proc = Runtime.getRuntime().exec(strPath);
strPath=“java-jar”
Process proc=Runtime.getRuntime().exec(strPath);
strPath将是jar文件的路径。您可以将其包围在线程类中,使其在单独的线程中运行。当MainApp的主方法退出时,整个应用程序退出。。。有没有办法在以后运行代码?当MainApp的主方法退出时,整个应用程序都会退出。。。有没有办法在以后运行代码?或者,从Java 8开始,只运行
新线程(()->MainApp.main(新字符串[]{“-port”,“8080”})).start()
。或者从Java 8开始,只运行新线程(()->MainApp.main(新字符串[]{“-port”,“8080”})).start()
。