2012-12-13 70 views
4

我正在嘗試編寫運行.jar文件的腳本。 下面的命令從工作端(從.jar文件夾):無法從MAC上的腳本訪問jarfile

java -jar "./myjavatest.jar" 

當我把這一行的文件,並從同一文件夾中運行它(使用終端或取景器中雙擊),我得到「無法訪問jarfile ./myjavatest.jar」。

我發現當我雙擊文件時,它實際上是從用戶主目錄運行的。 可以從文件所在的文件夾運行它嗎?

+0

你可以cd到.jar所在的目錄。但是,你可以簡單地使用完整的路徑,而不是相對的路徑。 – Sg1team

+0

將您的jar文件放在腳本所在的文件夾中,並使用java -jar myjavatest.jar –

回答

5

我發現當我雙擊文件時,它實際上是從用戶主目錄運行的。可以從文件所在的文件夾運行它嗎?

是的,有:

SOURCE="${BASH_SOURCE[0]}" 
DIR="$(dirname "$SOURCE")" 
while [ -h "$SOURCE" ] 
do 
    SOURCE="$(readlink "$SOURCE")" 
    [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" 
    DIR="$(cd -P "$(dirname "$SOURCE" )" && pwd)" 
done 
DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)" 

cd "$DIR" 

java -jar myjavatest.jar 
0

你有沒有試過改變權限到文件和目錄chmod 755 javatest.jar

+0

是的。沒有。 當我在腳本文件中做「ls」時,我看到它從用戶主文件夾而不是腳本文件夾運行。這就是爲什麼無法找到jar文件。 –

0

我有這個問題試圖執行與此內容sh文件: 的Java -Dlog4j.configuration =文件:log4j.properties -jar -Dfile.encoding = ISO-8859-1 mainRPV.jar

問題在於,由於某種原因,文件格式被更改爲DOS而不是UNIX,可能是因爲它已被編輯並保存在Windows中。設置FF = UNIX

方面: 其排隊的結局

嘗試打開該文件用vim和運行這個命令相關的!