【问题标题】:gksu on Mac OsxMac Osx 上的 gksu
【发布时间】:2013-12-04 14:38:29
【问题描述】:

我是 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 Osx 上安装 gksu 吗?

  2. 或者有什么命令可以用来代替gksu?

以下是从链接复制的脚本,

#!/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

【问题讨论】:

    标签: java linux eclipse macos


    【解决方案1】:

    有什么命令可以用来替换 gksu 吗?

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

    【讨论】:

      【解决方案2】:

      嗯,我刚刚在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"
      

      【讨论】:

      • 不。这无济于事。啊。希望我能理解 Ian 上面的 osascript 答案试图解释什么......
      猜你喜欢
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 2018-10-27
      相关资源
      最近更新 更多