我有一个有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
我知道我可以在Manifest文件中指定一个类作为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/datasource.properties‘和'/home/myhome/input.txt’是命令行参数)。
发布于 2011-03-29 23:08:01
您可以在没有Main-Class的Manifest文件中创建jar。然后:
java -cp MyJar.jar com.mycomp.myproj.dir2.MainClass2 /home/myhome/datasource.properties /home/myhome/input.txt
发布于 2011-03-29 23:06:34
首先,jar
创建一个jar,但不运行它。请尝试使用java -jar
。
其次,为什么要作为FQCN (com.mycomp.myproj.dir2.MainClass2
)和作为文件(com/mycomp/myproj/dir2/MainClass2.class
)两次传递这个类?
编辑:
看起来好像java -jar
需要指定一个主类。您可以尝试使用java -cp your.jar com.mycomp.myproj.dir2.MainClass2 ...
。-cp
在类路径上设置jar,并使java能够在那里查找主类。
https://stackoverflow.com/questions/5474666
复制相似问题