在init.d脚本中,pjava不能工作

分享于 

1分钟阅读

互联网

  繁體

问题:

我试图修改/etc/init.d/jenkins脚本,以便添加自定义java路径,解决方案是:


JAVAPATH=$(type -p java) 


PATH=/bin:/usr/bin:/sbin:/usr/sbin:$JAVAPATH



但是,当我启动该服务并查看日志时,我看到JAVAPATH变量为空。另一方面,如果我编写,例如:


PYPATH=$(type -p python) 


PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PYPATH



然后PATH变量将包含python二进制文件。

我的最终目标是删除文件名,仅保存目录名,这样:

JAVAPATH=$(type -p java | xargs dirname)

我在运行一个Debian 10,java路径是/usr/lib/jvm/jdk-11.0.9/bin/java


答案1:

type是一个shell内置函数,它在$PATH变量中指定的每个目录中查找文件。

dpkg -L <java package name> 要列出jdk提供的所有文件,并筛选它们以查找要使用的二进制文件:


$ JAVA_PATH=$(dpkg -L openjdk-11-jre-headless|fgrep bin/java)


$ echo $JAVA_PATH


/usr/lib/jvm/java-11-openjdk-amd64/bin/java





JAVA  INI  
相关文章