我有一个包含 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’ 是命令行参数)。
您可以在其 Manifest 文件中创建没有 Main-Class 的 jar。然后 :
java -cp MyJar.jar com.mycomp.myproj.dir2.MainClass2 /home/myhome/datasource.properties /home/myhome/input.txt