gpt4 book ai didi

java - 在 Linux 中从 java 执行 shell 脚本(使用 perl 和其他 shell 脚本的 shell 脚本)

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:37 27 4
gpt4 key购买 nike

我正在尝试从 java 程序执行一个 shell 脚本(使用 perl 脚本和其他 shell 脚本),但是我没有成功,这是我尝试过的:

在 Linux 服务器上,文件夹 test1/testJava 中有以下脚本可用:

  1. decode24.sh(我从 java 程序调用的主脚本,这个脚本使用了下面列出的其他脚本)
  2. fram.sh
  3. shadow.pl
  4. light.sh

这是我从 java 中尝试的:

try {
ConnBean cb = new ConnBean("xx.yyy.zz.p", "user","passme");
ssh = SSHExec.getInstance(cb);
CustomTask ct1 = new ExecShellScript("/test1/testJava", "./decode24.sh", "arg1");
ssh.connect();
net.neoremind.sshxcute.core.Result res = ssh.exec(ct1);
}catch......

执行后结果:

错误信息:

./decode.sh[17]: shadow.pl: not found [No such file or directory]
./decode.sh[21]: fram.sh: not found [No such file or directory]

最佳答案

错误来自您的 decode.sh脚本。它找不到 shadow.plfram.sh它执行的脚本。可能是因为运行脚本时没有将 CWD 或路径设置为脚本目录。

解决它的最可靠方法是更改​​您的 decode.sh使用 shadow.pl 的绝对路径的脚本和 fram.sh脚本。这样你就可以执行 decode.sh来自任何目录。

如果您使用 bash,请查看 this一个将绝对目录解析为脚本以避免对路径进行硬编码的简洁方法的问题。

关于java - 在 Linux 中从 java 执行 shell 脚本(使用 perl 和其他 shell 脚本的 shell 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30169164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com