linux⼀android下java语句如何赋予shell脚本可执行权限

2024-11-08 17:27:32
推荐回答(5个)
回答(1):

看看你java运行使用的是哪个客户,一般是当前用户,你建一个这个用户有全部权限的目录“u”,然后执行使用exec("chmod 777 /u/a.sh");exec("/u/a.sh")

回答(2):

java程序是提供了这个一方法, Process pro = Runtime.getRuntime().exec(cmds);   但是一般来说,尽量去用一些其他脚本(lua,shell,python)去执行一系列linux命令比较灵活, 而且耗费资源少。但是Runtime.getRuntime().exec()这种调用方式在java虚拟机中是十分消耗资源的,即使命令可以很快的执行完毕,频繁的调用时创建进程消耗十分可观。   java虚拟机执行这个命令的过程是,首先克隆一条和当前虚拟机拥有一样环境变量的进程,再用这个新的进程执行外部命令,最后退出这个进程。频繁的创建对CPU和内存的消耗很大。

回答(3):

chmod能改变权限,-R是目录下所有文件,777就是高权限(读、写、执行),chmod-R777*意思就是将当前目录下所有文件都给予777权限这个在服务器里不能随便敲的,不能在根目录下进行此命令,因为有些进程是指定权限(如755、700)才能运行的所以会出错

回答(4):

推荐答案里面说的不错,运行这段java程序的用户如果有完全控制这个a.sh权限,才可以使用java执行这个语句。

回答(5):

String commands = "chmod 777 /home/kitty/a.sh";
Process process = Runtime.getRuntime().exec(commands);