Java 如何使用另一个jar中的args运行main方法?

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(stringargs[])方法,它包含在我必须使用的*.jar中(不要问,我已经厌倦了)


从我自己的类(最好是在单独的线程中)调用此类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);
有两种方法:

  • 若您不介意在进程中运行它,那个么您可以将其作为SomeJava.MainApp.main({“-port”,“8080”})运行。。。MainApp类正以这种方式寻找参数

  • 如果您知道为运行该jar而传递的命令行参数,那么可以使用Runtime.exec()执行它

  • 希望能有所帮助。

    有两种方法:

  • 若您不介意在进程中运行它,那个么您可以将其作为SomeJava.MainApp.main({“-port”,“8080”})运行。。。MainApp类正以这种方式寻找参数

  • 如果您知道为运行该jar而传递的命令行参数,那么可以使用Runtime.exec()执行它


  • 希望这会有所帮助。

    该类是否位于另一个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()