我的一个探针程序,
需要调用其他服务的脚本,做停止启动的操作
调用自己维护的脚本检测一些进程和配置文件的情况
1的脚本是服务的脚本
2的脚本是探针程序自己的
触发探针做操作启动/停止或检查程序是由管理端发送消息来触发的
发送消息的时候会带上脚本的路径
脚本类型是不固定的,可能要跨平台,目前探针是用Java来实现的。
调用探针自己的脚本有没有必要提供全路径?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
绝对路径:
就是从根目录开始一直到该目录的完整路径,形如:C:\windows\system32\cmd.exe
相对路径:
就是相对于当前目录的路径。其中,.表示当前路径,..为父目录。例如:
从 C:\program files\common files 定位到 C:\windows\system32\cmd.exe
相对路径的表达为 ....windows\system32\cmd.exe
Java的Runtime.exec(String command)
会继承当前JVM的运行环境。
这个环境主要包含:(1)所有的环境变量,尤其是包括PATH;(2)当前工作目录。
调用其它Java程序,我想一般也会采用java executable.class这个命令,此时java命令由环境变量保证解析正确,文件名部分基于当前的工作目录也可以定位。
当然实际实现中,肯定还会有很多细节仍待商榷。但在以上的情况下,我感觉全路径是不必要的,至少不是一开始写脚本就有必要引入的(大可写相对路径行不通了再找原因)。