
linux/android下java语句如何赋予shell脚本可执行权限
我目前编写了一个shell脚本,想要通过java语句对其赋予可执行权限并调用执行。目前我已经掌握的方法是,通过shell命令chmod777a.sh,对这个shell脚本...
我目前编写了一个shell脚本,想要通过java语句对其赋予可执行权限并调用执行。目前我已经掌握的方法是,通过shell命令chmod 777 a.sh,对这个shell脚本添加可执行权限,然后通过java语句执行。String commands = "/a.sh"; Process process = Runtime.getRuntime().exec(commands);
我想要的效果是在java程序中也实现对shell脚本赋予可执行权限的操作,而不是像现在这样要通过shell环境下输入shell命令,望高手赐教,感激不尽。 展开
我想要的效果是在java程序中也实现对shell脚本赋予可执行权限的操作,而不是像现在这样要通过shell环境下输入shell命令,望高手赐教,感激不尽。 展开
6个回答
展开全部
看看你java运行使用的是哪个客户,一般是当前用户,你建一个这个用户有全部权限的目录“u”,然后执行使用exec("chmod 777 /u/a.sh");exec("/u/a.sh")
展开全部
java程序是提供了这个一方法, Process pro = Runtime.getRuntime().exec(cmds); 但是一般来说,尽量去用一些其他脚本(lua,shell,python)去执行一系列linux命令比较灵活, 而且耗费资源少。但是Runtime.getRuntime().exec()这种调用方式在java虚拟机中是十分消耗资源的,即使命令可以很快的执行完毕,频繁的调用时创建进程消耗十分可观。 java虚拟机执行这个命令的过程是,首先克隆一条和当前虚拟机拥有一样环境变量的进程,再用这个新的进程执行外部命令,最后退出这个进程。频繁的创建对CPU和内存的消耗很大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-20
展开全部
chmod能改变权限,-R是目录下所有文件,777就是高权限(读、写、执行),chmod-R777*意思就是将当前目录下所有文件都给予777权限这个在服务器里不能随便敲的,不能在根目录下进行此命令,因为有些进程是指定权限(如755、700)才能运行的所以会出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-30
展开全部
推荐答案里面说的不错,运行这段java程序的用户如果有完全控制这个a.sh权限,才可以使用java执行这个语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-30
展开全部
String commands = "chmod 777 /home/kitty/a.sh";
Process process = Runtime.getRuntime().exec(commands);
Process process = Runtime.getRuntime().exec(commands);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询