为了使我的程序更加用户友好且易于更新,安装时会在桌面上创建.jar文件的链接。
问题是 - 文件未标记为可执行文件,因此用户必须找到隐藏目录并将jar文件标记为可执行文件。布莱什。
我尝试使用:
Runtime.getRuntime().exec(new String[]{"sudo","chmod","+x",home+"/"+dir+"/DevChat.jar"});
,可以预见,请求用户的密码没有回复。
那么我有什么办法吗? A)在提示用户输入用户密码后给运行时提供用户密码, B)使链接运行命令“java -jar blahblahblah.jar”,或 C)编写一个将文件标记为可执行文件的安装脚本?
答案 0 :(得分:0)
您无需成为root用户即可更改您拥有的文件系统对象的权限。
答案 1 :(得分:0)
有人说...你不需要root就可以更改jar文件的权限。
但是,如果这个文件放在需要管理员权限来访问它的文件夹中,或者没有解决方法,只需在运行sudo时使用-S选项
有关参考,请点击此处:Getting stdin from sudo command;)
干杯啦!
P.S。:当然,你必须打开一个流,然后从终端获取,我认为在你的情况下是微不足道的。如果你确实有问题,那就问一下。
答案 2 :(得分:0)
由于您在桌面上创建了一个链接,我假设您希望与用户进行某种基于GUI的交互。
如果是这样,只需使用gksudo而不是sudo。
Runtime.getRuntime().exec(new String[]{"gksudo","chmod","+x",home+"/"+dir+"/DevChat.jar"});
如果您需要更复杂的内容,请查看Zenity。