2015-04-23 39 views
0

我是一個Mac開發人員。如何從其他目錄的MAC上運行.sh文件

我嘗試創建project.sh文件並通過

終端運行

mac.zip瞭解更多詳情。

主類(com.myclass.MyClass)處於 「的main.jar」 需要lib1.jar,lib2.jar和sublib1.jar

的 「CLASSPATH」 屬性中 「project.sh」通過腳本創建,它不能在project.sh改變

值始終處於相對路徑格式,如「../../lib/lib1.jar」

當我嘗試運行它從包含main.jar和project.sh的「mac/project」目錄通過Mac終端

它工作f ine如下

Gui-iMac:project gui$ ./project.sh 
AClass 
BClass 
CClass 

但是,當我嘗試從其他目錄運行project.sh失敗。

例如:

Gui-iMac:desktop gui$ "/Users/gui/Desktop/GUI/Mac/project/project.sh" 
Error: Could not find or load main class com.myclass.MyClass 

如何運行其他目錄project.sh:從桌面目錄中運行?

請幫我解決這個問題。

在此先感謝。

earist

+0

/project/project.sh',添加'cd $(dirname「$ 0」)' – anishsane

回答

0

我不知道這是你正在尋找,但運行從另一個目錄.SH腳本的回答,您可以使用

$sh /Users/gui/Desktop/GUI/Mac/project/project.sh 
0

現在,我找到解決方案對於這個問題。

使用

CD 「$目錄名」 & & EXEC 「$ mycommand的」

如下:

#!/bin/bash 
BASE=$(dirname "$0") 
ARGS="" 

if [ $# -gt 1 ]; then 
    while [ $# -ge 1 ]; do 
     case "$1" in 
      -[a-z]*) ARGS="$ARGS $1" ;; 
      *) ARGS="$ARGS \"$1\"" ;; 
     esac 
     shift 
    done 
fi 

CLASSPATH=.:../lib/lib1.jar:../lib/lib2.jar:./lib/sublib1.jar:./main.jar 
JAVA_COMMAND=java 
VM_OPTIONS="-Xmx800M" 
EXEC_COMMAND="cd \"$BASE\" && exec $JAVA_COMMAND $VM_OPTIONS -cp $CLASSPATH com.myclass.MyClass $ARGS" 
eval $EXEC_COMMAND 
在`/用戶/ GUI /桌面/ GUI/Mac的