用于运行任何版本jar的Shell脚本

时间:2013-03-04 10:01:28

标签: java bash

如何制作shell script来执行jar文件,无论其版本如何?

说我有一个文件:

  

我-JAR文件-1.0.0-快照executable.jar

我想要一个可以按照

的方式执行某些操作的shell脚本
#!/bin/bash
java -some -other -options -jar my-jar-file-1.0.0-SNAPSHOT-executable.jar

但它应该执行它的任何版本,所以

  1. 我-JAR文件-1.0.0-快照executable.jar

  2. 我-JAR文件-1.1.0-快照executable.jar

  3. 我-JAR文件-1.0.1-快照executable.jar

  4. 应该都由同一个脚本执行。

    我该怎么做?

3 个答案:

答案 0 :(得分:2)

如果jar的名称匹配模式my-jar-version.jar

java -jar `ls my-jar*.jar`

答案 1 :(得分:1)

我们也可以考虑另一种方法,为什么不给jar一个最终名称,它将保持不变,并且不需要修改脚本。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <finalName>myname</finalName>
    <configuration>
</plugin>

如果必须具有版本号,您可以编写一个脚本来模式搜索该特定jar。并相应地运行它。

我使用蚂蚁做了类似的工作,但目标不同,希望这会有所帮助。

答案 2 :(得分:1)

在bash脚本中尝试:

for jarfile in my-jar-file-*-SNAPSHOT-executable.jar; do
    java -some -other -options -jar $jarfile
    echo "done for: $jarfile"
done