gpt4 book ai didi

java - 在 Eclipse 中以 root 身份运行 Java 程序

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:53 25 4
gpt4 key购买 nike

我需要以 root 身份运行我的程序。我看了this问题,它有点作用。我需要使用标准输入,而使用 bash 脚本似乎不接受标准输入。我正在使用 Eclipse 和 Ubuntu。有任何想法吗?这也会给其他 Java 程序带来问题,因为它们也不接受 stdin。

如果运行此代码:

import java.io.IOException;

public class Test {
public static void main(String[] args) {
while (true) {
try {
System.out.print((char) System.in.read());
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}

当您在控制台中输入内容并按 Enter 键时,它会输出您输入的内容。

当我使用 bash 脚本时:

#!/bin/bash
# file: /usr/lib/jvm/java-8-oracle/bin/java
# descr: Starter for jdk. Runs jdk as root when
# cmd-line-arg "--run-as-root" is specified.
#
jre="/usr/lib/jvm/java-8-oracle/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

我得到了一堆奇怪的字符,当我删除字符转换时,我得到-1,意味着流结束。 enter image description here

最佳答案

如果您是从 Eclipse 中运行该程序,则 Eclipse 会启动该程序。这意味着您需要以 root 身份登录,或者需要重新配置 eclipse 以使用 sudo

以root身份登录更容易,因为它不需要任何额外的工作;然而,它也有更大的风险,因为你的系统会暴露在程序中的错误和 Eclipse 程序中的错误中。

sudo 下运行意味着您可能并不总是有控制台。安装程序后更是如此。我建议您现在就做这项工作,将其记录到一个文件中,就好像您正在处理 1000 个以下的端口套接字一样,您可能正在编写某种守护进程,并且它将(完成后)定期启动缺乏控制台的环境。

关于java - 在 Eclipse 中以 root 身份运行 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com