如何以 Eclipse 中的超级用户身份运行我的应用程序?

2022-09-01 16:08:24

当我尝试从 Eclipse 运行我的服务器应用程序时,我遇到了一个错误。错误是 java.net.BindException: Permission 被拒绝。我认为这是因为我正在使用端口443来设置SSL连接。如果我使用java和sudo在命令行上运行代码,我可以解决这个问题。有没有办法设置Eclipse,以便当我点击运行按钮时,我的应用程序使用sudo执行?


答案 1

您可以按照以下步骤以超级用户身份编译/调试应用程序。

  1. 重命名您的 Java 应用程序

    sudo mv /usr/lib/jvm/java-6-openjdk/jre/bin/java /usr/lib/jvm/java-6-openjdk/jre/bin/java.ori

  2. 创建以下脚本并将其存储为 /usr/lib/jvm/java-6-openjdk/jre/bin/java

    #!/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
    
  3. 更改权限以使其可执行

    sudo chmod 0755 /usr/lib/jvm/java-6-openjdk/jre/bin/java

  4. 启动日食

  5. 转到“窗口>首选项>Java>已安装的 JRE
  6. Duplicate java-6-openjdk to java-6-openjdk-root
  7. 编辑 JRE 并将“--run-as-root”添加为默认 VM 参数

要以 root 用户身份运行项目,您需要执行以下步骤:

  1. 转到项目>属性>Java 构建路径
  2. 双击 JRE 系统库,然后在备用 JRE 中选择“java-6-openjdk-root”

注意:这个想法来自 http://www.eclipse.org/forums/index.php/mv/msg/87353/724852/#msg_724852


答案 2

假设您使用的是 Linux (*nix),那么通过 sudo 命令启动 eclipse 会话怎么样?

sudo ~/eclipse/eclipse

现在,无论你从日食中做什么,都会有sudo上下文吗?