Mac Osx上的gksu

时间:2013-12-04 14:38:29

标签: java linux eclipse macos

我对linux命令的新意见.. 我使用Mac Osx Mountain Lion作为我的操作系统和eclipse来编译我的java程序..

问题是我试图在eclipse上以root用户身份运行/编译/调试我的java应用程序。

按照rednammoc中的步骤/回答“ How do I run my application as superuser from Eclipse?

这个步骤要求我编写一个可执行脚本,让我的jre以root用户身份运行,但是在脚本中有一个部分,它使用命令gksu,我认为只能在linux平台上使用,而不是在Mac Osx上平台,当我运行我的程序时,它显示找不到gksu命令。所以问题是,

  1. 我可以在Mac OS上安装gksu吗?

  2. 或者是否有任何可用于替换gksu的命令?

  3. 以下是从链接中复制的脚本

    #!/bin/bash
    # file:  /usr/lib/jvm/java-6-openjdk/jre/bin/java
    # descr: Starter for jdk. Runs jdk as root when 
    #        cmd-line-arg "--run-as-root" is specified.
    #
    jre="/usr/lib/jvm/java-6-openjdk/jre/bin/java.ori"
    run_as_root=false
    args=
    
    # Filter command-line argument
    for arg in "$@"
    do
      case "$arg" in
      --run-as-root)  run_as_root=true
                      ;;
      *)              args="$args $arg"
                      ;;
    
      esac
    done
    
    # Remove leading whitespaces
    args=$(echo $args | sed -e 's/^[ \t]*//')
    
    if $run_as_root
    then
      echo "WARNING: Running as root!"
      gksu "$jre $args"
    else
      $jre $args
    fi
    

2 个答案:

答案 0 :(得分:3)

  

有没有可用于替换gksu的命令?

osascript -e 'on run argv' \
          -e 'do shell script (item 1 of argv) with administrator privileges' \
          -e 'end run' \
          "$jre $args"

答案 1 :(得分:0)

嗯,我刚刚在http://pastebin.com/dhbU57uE天堂发现这件事已经尝试过了!

#!/bin/bash
# file:  /usr/lib/jvm/java-6-openjdk/jre/bin/java
# descr: Starter for jdk. Runs jdk as root when 
#        cmd-line-arg "--run-as-root" is specified.
#
jre="/usr/lib/jvm/java-6-openjdk/jre/bin/java.ori"
run_as_root=false
args=

# Filter command-line argument
for arg in "$@"
do
  case "$arg" in
  --run-as-root)  run_as_root=true
                  ;;
  *)              args="$args $arg"
                  ;;

  esac
done

# Remove leading whitespaces
args=$(echo $args | sed -e 's/^[ t]*//')

if $run_as_root
then
  echo "WARNING: Running as root!"
  gksu "$jre $args"
else
  $jre $args
fi

osascript -e 'on run argv' 
          -e 'do shell script (item 1 of argv) with administrator privileges' 
          -e 'end run' 
          "$jre $args"