如何在jar的清单文件中指定运行时变量?

时间:2012-01-03 00:41:12

标签: java

更具体地说,当我在运行之前从命令行运行我的java程序时,我会这样做:

java -cp  a.jar;b.jar;c.jar;. -Djavax.net.ssl.trustStore=jssecacerts  Main

我可以将jar放入Manifest文件中,如下所示:

Class-Path: a.jar b.jar c.jar

然后像这样创建jar文件:     jar -cmf MANIFEST Main.jar Main.class

因此,当我运行它时,我可以写:

java -jar Main.jar -Djavax.net.ssl.trustStore=jssecacerts

但是,我想进一步简化命令行,如果可能的话,在清单中指定-D变量。基于此参考:

http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

如何做到这一点似乎并不明显,所以我想知道是否有办法做到这一点。

1 个答案:

答案 0 :(得分:1)

您无法通过在清单中设置任何内容来执行此操作,但this提供了一些您可能会考虑的有趣替代方案。

通常,您可以在Jar文件中放置一个属性文件,并通过类路径(Class.getResourceAsStream())访问它,这样就会产生接近相同的效果,当您执行时不必更改代码需要重置属性。