2013-03-04 29 views
0

如何製作shellscript這將執行一個jar文件,無論其版本是什麼?Shell腳本運行任何版本的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-SNAPSHOT-executable.jar

應該全部由相同的腳本執行。

我該怎麼做?

+0

我認爲你應該使用軟鏈接。 ln -s my-jar-file-1.0.1-SNAPSHOT-executable.jar my-jar-file-1.0.1-executable.jar – Miquel 2013-03-04 10:05:02

回答

1

如果罐子匹配模式my-jar-version.jar的名字:

java -jar `ls my-jar*.jar` 
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。並相應地運行它。

我做了一個類似的工作,使用螞蟻,但目標不同,希望這有助於。

1

試試這個在bash腳本:

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