如何使用bash在jar中执行多个java类文件

如何使用bash在jar中执行多个java类文件,java,bash,jar,executable-jar,Java,Bash,Jar,Executable Jar,我知道我们可以调用jar文件中的类,在清单文件中提供主类属性。但是,我们怎样才能以这种方式调用jar中的多个文件呢。或者我们可以调用jar文件中的类,而不使用bash在清单文件中指定。清单文件中的主类属性使该jar文件成为可运行的jar。然后,您可以使用以下命令调用该JAR: java -jar <jar-file> java-jar 但您也可以使用传统方式直接调用主类: java -cp <jar-file> your.pkg.MainClass java-cp

我知道我们可以调用jar文件中的类,在清单文件中提供主类属性。但是,我们怎样才能以这种方式调用jar中的多个文件呢。或者我们可以调用jar文件中的类,而不使用bash在清单文件中指定。

清单文件中的主类属性使该jar文件成为可运行的jar。然后,您可以使用以下命令调用该JAR:

java -jar <jar-file>
java-jar
但您也可以使用传统方式直接调用主类:

java -cp <jar-file> your.pkg.MainClass
java-cp your.pkg.MainClass
请注意,必须在类路径中包含JAR文件,以便Java能够找到其中的类。另一个注意事项:如果您在JAR的清单文件中没有类路径属性,但您的类依赖于其他JAR中的其他类,则必须在类路径中包含所有这些JAR:

java -cp <jar-file>;<lib1>;<lib2>;... your.pkg.MainClass
java-cp;;;。。。你的.pkg.main类

注意,在Linux系统中,路径分隔符是冒号,而不是分号。

除了@Seelenvirtuose建议的选项外,另一个选项是将主类设置为某种前端控制器,并将要调用的类的名称作为参数传递

java -jar app.jar SomeClass
并基于此参数将请求分派给相应的类