机器学习和生物信息学实验室联盟

标题: 关于运行JAR包中的class [打印本页]

作者: xmubingo    时间: 2011-8-13 18:34
标题: 关于运行JAR包中的class
本帖最后由 xmubingo 于 2011-8-13 18:35 编辑

引用自 @fiona
jar包中含有多个.class文件,如test.jar 包中包含test1.class,test2.class,test3.class,且这些文件都包含main函数
要运行test1中的main函数,在命令行中先进入jar所在目录,然后输入以下命令即可运行test1
java -classpath test.jar test1
如果还有其他参数设置,可以在以上命令后面跟上参数。

命令格式:
  1. java -classpath [jar-name] [filename]
复制代码
jar-name: jar文件名
filename: 包含main函数的.class文件


读了fiona这篇文章,很有启发。
基本上运行JAR的包,我们都用
  1. java -jar XXX.jar -args1 -args2
复制代码
这是建立在我们的jar包里配置了main函数的入口是哪个class的基础上。因为我们在导出JAR包的时候都会选择一个默认的main入口class。

有些时候我们需要运行一个JAR包里面的多个带有main的函数,这个时候就比较麻烦。可以运用@fiona提到的方法。
  1. java -classpath XXX.jar main1 -args1 -args2
复制代码
这个命令的理解是这样的,将XXX.jar包当作外部包加入到classpath中,如此,在后面直接运行main1.class。
而如果这个filename不是在默认的package里,假如在一个名字为homework的package里,那么运行时应该该为:
  1. java -classpath XXX.jar homework.main1 -args1 -args2
复制代码
用这种方式就可以随意运行JAR包中带有main入口的class。

其实就像我们用命令javac去编译好filename.java,在用java filename去运行程序一样。
作者: zouquan    时间: 2011-8-13 21:27
好帖子,加精华!




欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2