小编典典

如何从 Jar 运行一个不在其 Manifest 文件中的 Main-Class 的类

all

我有一个包含 4 个类的 JAR,每个类都有 Main 方法。我希望能够根据需要运行其中的每一个。我正在尝试从 Linux 机器上的命令行运行它。

E.g. The name of my JAR is MyJar.jar

主要类的目录结构如下:

com/mycomp/myproj/dir1/MainClass1.class
com/mycomp/myproj/dir2/MainClass2.class
com/mycomp/myproj/dir3/MainClass3.class
com/mycomp/myproj/dir4/MainClass4.class

我知道我可以在我的清单文件中指定一个类作为主类。但是有什么方法可以让我在命令行上指定一些参数来运行我想运行的任何类?

我试过这个:

jar cfe MyJar.jar com.mycomp.myproj.dir2.MainClass2 com/mycomp/myproj/dir2/MainClass2.class /home/myhome/datasource.properties /home/myhome/input.txt

我得到了这个错误:

com/mycomp/myproj/dir2/MainClass2.class : no such file or directory

(在上述命令中,’/home/myhome/datasource.properties’ 和 ‘/home/myhome/input.txt’
是命令行参数)。


阅读 93

收藏
2022-06-24

共1个答案

小编典典

您可以在其 Manifest 文件中创建没有 Main-Class 的 jar。然后 :

java -cp MyJar.jar com.mycomp.myproj.dir2.MainClass2 /home/myhome/datasource.properties /home/myhome/input.txt
2022-06-24