首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Jar运行不是其清单文件中的Main-Class的类

如何从Jar运行不是其清单文件中的Main-Class的类
EN

Stack Overflow用户
提问于 2011-03-29 23:02:16
回答 2查看 351.7K关注 0票数 199

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

代码语言:javascript
复制
E.g. The name of my JAR is MyJar.jar

它主要类的目录结构如下:

代码语言:javascript
复制
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。但是,有没有什么方法可以让我在命令行上指定一些参数来运行我希望运行的任何类?

我试过这个:

代码语言:javascript
复制
jar cfe MyJar.jar com.mycomp.myproj.dir2.MainClass2 com/mycomp/myproj/dir2/MainClass2.class /home/myhome/datasource.properties /home/myhome/input.txt

我得到了这个错误:

代码语言:javascript
复制
com/mycomp/myproj/dir2/MainClass2.class : no such file or directory

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-29 23:08:01

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

代码语言:javascript
复制
java -cp MyJar.jar com.mycomp.myproj.dir2.MainClass2 /home/myhome/datasource.properties /home/myhome/input.txt
票数 247
EN

Stack Overflow用户

发布于 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能够在那里查找主类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5474666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档