如何从其他目录的MAC上运行.sh文件
问题描述:
我是一个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
答
我不知道这是你正在寻找,但运行从另一个目录.SH脚本的回答,您可以使用
$sh /Users/gui/Desktop/GUI/Mac/project/project.sh
答
现在,我找到解决方案对于这个问题。
使用
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的
/project/project.sh',添加'cd $(dirname“$ 0”)' – anishsane