3

私は試した:

final ProcessBuilder pb = new ProcessBuilder("umount", "foldername");
final Process p = pb.start();

スロー

umount: /home/user/foldername が fstab にありません (そして root ではありません)

私は試した

final ProcessBuilder pb = new ProcessBuilder("sudo","umount", "foldername");
final Process p = pb.start();

スロー

sudo: 申し訳ありませんが、sudo を実行するには tty が必要です

root パスワードを取得しましたが、ProcessBuilder. またfstab、保存されたOSイメージからリモートサーバーで起動されたリモート仮想マシンであるため、編集できません(または編集する必要があるものは何でも)。

コマンドをルートとして実行したいだけです。

4

1 に答える 1

3

いくつかのオプションがあります。

  1. sudoユーザーがそこにパスワードを入力できるように、制御端末を使用できるようにします。

    pb = new ProcessBuilder("sh", "-c", "sudo umount foldername </dev/tty");
    Process p = pb.start();
    p.waitFor();
    
  2. gksudoではなくを使用してプログラムを実行しsudoます。GTK+ を使用するシステムには、多くの場合、およびgksuのグラフィカル インターフェイスとしてパッケージが付属しています。susudo

    pb = new ProcessBuilder("gksudo","umount", "foldername");
    
  3. のターミナル エミュレータ ウィンドウを開きますsudo

    pb = new ProcessBuilder("xterm","-e","sudo","umount","foldername");
    
于 2012-04-04T13:03:23.197 に答える