JSch を使用して Java をリモート UNIX サーバーに接続しています。次のステップは、いくつかの内部環境変数を利用するシェル スクリプト (.sh) を実行することです。
シェル スクリプトを端末から直接実行すると正常に動作しますが、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」に設定されます。
ありがとう、
アリア