我使用
Process process = Runtime.getRuntime().exec(command);
其中的command为shell命令,
问题是这样的,当command=“dpkg -l”时,命令执行,可以通过process.getInputStream()获得系统安装的软件列表;
但是当我继续调用shell命令来卸载某个软件包时,使command=“dpkg -l gcc“,gcc是我要卸载的包,程序虽然可以执行,但是却实现不了gcc的卸载。
如何调用这些需要权限的命令呢?还是我根本就调用错了?请大家指教。

解决方案 »

  1.   

    卸载是dpkg -r
    你的参数不对,-l是显示版本,当然不会卸载了
    如果没有权限,那只能换个用户运行,或者自己写个shell,在shell里面调用su 一类的命令更换用户后再执行dpkg
      

  2.   


    我的手误!!参数是-r,但是还是运行之后还是没成功卸载,但是如何用java调用dpkg -r呢???
      

  3.   

    你不是已经知道怎么调用了吗?
    Process process = Runtime.getRuntime().exec(command);
    如果没有权限,我上面说过了,不重复了。