我需要以root身份運行我的程序。我看着this的問題,它有點作用。我需要使用stdin並使用bash腳本似乎不接受stdin。我正在使用Eclipse和Ubuntu。有任何想法嗎?這也會導致其他Java程序出現問題,因爲它們也不接受stdin。在Eclipse中以root身份運行Java程序
如果你運行這段代碼:
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();
}
}
}
}
他們你類型的東西到控制檯並按下回車鍵,它輸出你鍵入的內容
當我使用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 "[email protected]"
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
我得到了一堆奇怪的字符,當我刪除char轉換時,我得到-1,意味着流的結束。
當你說你需要使用stdin,你的意思是你想管「|」輸入到您的Java應用程序中? – Leon 2014-10-26 17:02:07
我不知道你是什麼意思管「|」但我想用控制檯/終端輸入純文本System.in – 2014-10-26 17:03:09
這應該「只是工作」。你能提供一個代碼示例並描述你所得到的行爲嗎? – Leon 2014-10-26 17:04:54