0

おはようございます:

root として実行する必要がある外部アプリケーションを実行しようとしています。このアプリケーションの実行後に終了から行を読み取る必要がありますが、正しく行われていないかのように「許可が拒否されました」と表示されます。ずっと考えていて、前に進めません。コードは次のとおりです。

process = Runtime.getRuntime().exec("su");
String[] command = {external application command};
process = Runtime.getRuntime().exec(comando);
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = null;
try
{
   bufferedReader = new BufferedReader(new
       InputStreamReader(inputStream),8192);
   String line = null;
   while ((line = bufferedReader.readLine()) != null)
   {
      System.out.println("read line:"+line );
   }
}
catch (IOException ioe)
{
  ioe.printStackTrace();
}
process.waitFor();

コマンドを実行させない理由を知っている人はいますか?

ありがとう。

4

2 に答える 2

0

試してみてはどうですか

sudo -iu root

suの代わりに

于 2011-02-01T07:46:59.320 に答える
0

実行しようとするとエラーが発生しますsuか? (suおそらく、ターミナルを開いてパスワードの入力を求めるプロンプトを直接表示するため、パスワードsuの標準入力を読み取るだけではないので、そうするだろうと思います。)

のような単純なプログラムを実行しようとすると、エラーや成功はあります/usr/bin/cat /etc/passwdか? より複雑なプログラムを試す前に、簡単に始めて、それが機能するかどうかを確認することもできます。

于 2011-02-01T07:21:48.870 に答える