2015-04-23 104 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的
相关问题