我正在使用 JSch 将我的 java 连接到远程 unix 服务器。下一步是运行一个使用一些内部环境变量的 shell 脚本 (.sh)。
直接从终端执行 shell 脚本可以正常工作,但是通过 JSch 从 Java 程序调用它不能识别这些变量。我该如何解决这个问题。在 Java 方面经验较少。发布示例代码-
JSch jsch = new JSch();
Session session = jsch.getSession("username", "server", 22);
UserInfo ui = new SftpUserInfo();
session.setUserInfo(ui);
session.setPassword("mypass");
session.connect();
ChannelExec channelExec = (ChannelExec)session.openChannel("exec");
InputStream in = channelExec.getInputStream();
channelExec.setCommand("sh /filePath/myShellScript.sh");
channelExec.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
PS:环境变量设置在用户根文件夹(/home/username/)中的“.profile”
谢谢,
艾莉亚