2011-12-05 65 views
1

我有一個包/ bin和package/lib的目錄結構,其中package/lib包含jar文件,而package/bin應包含一些腳本。用於在正確路徑中運行Java類的通用腳本

我有興趣在基本上從lib /中運行java類的package/bin中編寫腳本。這些腳本應該可以從任何目錄運行,不一定是package /,package/bin /或package/lib。

這意味着,在包裝/ bin中的腳本,我們稱之爲「run.sh」應該這樣做:

  1. 標識從中run.sh腳本可以運行的目錄。
  2. 條斷,使得我們最終包的目錄/
  3. 附加箱/它
  4. 與此推導的目錄運行所需的Java類。

遵循步驟1-3的最佳方法是什麼?我希望它幾乎與平臺無關,所以至少它可以在所有Unix系統和OSX上運行。我想避免使用perl(我可以很容易地在perl中寫這個),而是選擇一個shell腳本。

謝謝。

+0

看到HTTP的文件夾的腳本:/ /stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in以獲得過去的步驟1和2 - 至少在Gnu Bash的系統上。 (Put#!/ bin/bash) - 不能像其他POSIX Bourne shell一樣可移植,因此可能會限制您使用OSX和Linux,但不一定是所有的Unix(POSIX)系統。 – BRFennPocock

+0

感謝您的鏈接。 – kloop

回答

0

沿着BASH線....

my_package_path=$(dirname `dirname $0`) 

$ 0產生你的路徑,你正在運行 dirname $0給你的路徑,你的腳本是

相關問題