2012-03-13 14 views
0

私は、いくつかの環境変数をソースし、ユーザにいくつかのオプションを与えるUnixシェルスクリプト(bash)を持っています。ユーザーの入力に基づいて、特定のアクションを実行する他のUnixシェルスクリプトを呼び出します。下記の起動アプリサーバーオプションに問題があります。 main.shからappserver/run.shスクリプトを実行すると、「jarfile start.jarにアクセスできません」というメッセージが表示されます。 run.shスクリプトに直接ナビゲートして、そのディレクトリから実行すると、動作します。 start.jarはJettyアプリケーションサーバーを起動します。 main.shからrun.shを実行する方法に関するアイデアはありますか?UnixシェルスクリプトとJava Jarコマンド

権限:

-rw-r--r-- 1 colgray eng 42364 Jan 10 15:40 start.jar 

main.sh:

source ./setupenvironment.sh 
echo "Which Example would you like to run?" 
select yn in "one" "two" "start app server" "Quit" do 
    case $yn in 
     "one") ./examples/one/scripts/one.sh; break;; 
     "two") ./examples/twp/scripts/two.sh; break;; 
     **"start app server") ./examples/appserver/run.sh; break;;** 
     Quit) exit;; 
    esac 
done 

/examples/appserver/run.sh:

java -jar start.jar 

答えて

1

あなたは./examples/appserver以外のディレクトリから実行しているので、それはあなたjarファイルを見つけることができません:あなたはどこexamples生活(ディレクトリからそれを実行しているように見えるという事実に基づいて

<somewhere>      <-- this is where you are 
    |        ^
    +--> examples      | <- this is a distance too far :-) 
      |       v 
      +--> appserver  <- this is where start.jar is 

01:それ以外の場合は、相対パスが動作しないでしょう)、あなたは

java -jar examples/appserver/start.jar 

かのいずれかが必要ですあなたのrun.shファイル内

cd examples/appserver 
java -jar start.jar 

+0

ディレクトリに変更し、java -jar start.jarを実行して、大変感謝しました! – c12

0

変更の実行start.jarへの絶対パスを使用する.sh。

関連する問題