我有一个有4个类的JAR,每个类都有Main方法.我希望能够根据需要运行其中的每一个.我正在try 从Linux box上的命令行运行它.

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

其主要类的目录 struct 如下:

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

我知道我可以在 list 文件中指定一个类作为main.但是,有没有办法在命令行中指定一些参数来运行我希望运行的任何类呢?

我试过这个:

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/datource.properties’和‘/home/myhome/input.txt’是命令行参数).

推荐答案

您可以在JAR的 list 文件中创建没有Main-Class的JAR.然后:

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

Java相关问答推荐

在没有maven或IDE的情况下从命令行运行PFA模块化应用程序时出现神秘错误

Spring bootstrap @ Asmat注释与@ Routed

将@ManyToOne JPA Composite Key用作Id保存实体添加额外参数

无法运行Java(已解决)

更新我们的一个文物后出现了严重的符号引用错误

使用联接和分页的SpringBoot Spring数据JPA

为什么不应用类型推断?

RichFaces 3.x-Spring Boot-迁移web.xml

Java LocalTime.parse在本地PC上的Spring Boot中工作,但在Docker容器中不工作

JavaFX如何在MeshView中修复多个立方体?

当Volatile关键字真的是必要的时候?

在Eclipse中数组的可空性

我的Spring Boot测试显示&IlLegalStateException:无法加载某事的ApplicationContext.

在实例化中指定泛型类型与不指定泛型类型之间的区别

通过/失败的参数化junit测试方法执行数

Kotlin-仅替换字符串中最后一个给定的字符串

如果c不为null,Arrays.sort(T[]a,Comparator<;?super T>;c)是否会引发ClassCastException?

如何在单元测试中获得我的装饰Mapstruct映射器的实例?

使用Java线程进行并行编程

spring 数据Elastic search 与 spring 启动数据Elastic search 之间的区别是什么?