如何从其他目录运行MAC上的.sh文件

时间:2015-04-23 04:50:22

标签: macos shell terminal

我是Mac开发的新手。

我尝试创建project.sh文件并通过终端

运行它

有关详细信息,请参阅mac.zip

主类(com.myclass.MyClass)位于" main.jar"这需要lib1.jar,lib2.jar和sublib1.jar

" CLASSPATH"属于" project.sh"是通过脚本创建的,不能在project.sh

中更改

值始终采用相对路径格式,例如" ../../ lib / lib1.jar"

当我尝试从" mac / project"通过Mac终端包含main.jar和project.sh的目录

它可以正常运行

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

2 个答案:

答案 0 :(得分:0)

我不知道这是您正在寻找的答案,但是可以使用其他目录运行.sh脚本

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

答案 1 :(得分:0)

现在,我找到了解决这个问题的方法。

使用

  

cd“$ directoryName”&&执行“$ 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