Java 如何在main中调用jar文件

Java 如何在main中调用jar文件,java,jar,Java,Jar,我有很多jar文件,它们自己做一些小任务。我希望创建一个带有菜单的主类,并要求用户执行任务。如何从主类调用外部jar文件?使用系统调用?我不想重做所有的jar文件,把它们合并成一个主程序 我有这些罐子,可以完成一项特殊任务。这些都是很久以前就做过的 myPrintToPrinter.jar mySendEmail.jar myCheckBuffer.jar myAuditTrail.jar 我想创建一个菜单: 1) Print to printer 2) SEnd email 3) ....

我有很多jar文件,它们自己做一些小任务。我希望创建一个带有菜单的主类,并要求用户执行任务。如何从主类调用外部jar文件?使用系统调用?我不想重做所有的jar文件,把它们合并成一个主程序

我有这些罐子,可以完成一项特殊任务。这些都是很久以前就做过的

myPrintToPrinter.jar 
mySendEmail.jar
myCheckBuffer.jar
myAuditTrail.jar
我想创建一个菜单:

1) Print to printer
2) SEnd email
3) ....
根据用户选择,我调用每个jar文件。我想我真的需要掏钱去打电话


谢谢

一个好方法是

1) create a folder with name lib
2) add all the required jar files there
3) Add the dependent jar files in the project (select from the lib folder,
   this is a good practice to keep the jars within the project folder to avoid path 
   dependencies when you move the project).
4) Create your required class and perform all the checks (logic part) in the main function.

您甚至可以通过创建所创建类的可运行jar来创建最终jar。

您可以使用URLClassLoader来加载jar。 PFB一个示例代码,说明如何从Java代码加载JAR。 希望这有帮助

TestClass.java :
public static void main(String[] args)
{
    URLClassLoader loader = (URLClassLoader)ClassLoader.getSystemClassLoader();  
    MyClassLoader l = new MyClassLoader(loader.getURLs());  
    l.addURL(new URL("file:C:/work/mytestjar.jar")); 
    Class c = l.loadClass("com.test.MyJarClass"); // com.test.MyJarClass is the class from JAR
}

MyClassLoader.java:
public class MyClassLoader extends URLClassLoader
{  

    public MyClassLoader(URL[] urls) {  
        super(urls);  
    }  

    @Override  
    public void addURL(URL url) {  
        super.addURL(url);  
    }  
} 

您可以使用-class。您的命令应该类似于
java-jar-Your.jar
。您是说在jar文件中使用java类,还是在一个jar文件中启动一个包含main方法的类?如果更改依赖jar文件中的代码,这不是一个好方法。您还必须更改给定的静态路径..如果代码用于多个类…在这种情况下,您可以将jar保留在项目中..如果我将项目从一个驱动器移动到另一个驱动器,lib folder将不得不反复更改此位置。。文件:C:/work/mytestjar.jar