例如我通过ganymed-ssh2-262.jar连接Linux.
想执行一个java -version命令.
如果使用
Session sess = connection.openSession();
sess.requestPTY("bash"); sess.startShell();
PrintWriter out = new PrintWriter(session.getStdin());
out.println(cmd);
就可以正常执行.
但是如果使用
Session sess = connection.openSession();
sess.execCommand(cmd);
就无法执行java -version命令,只能执行类似 ls 这类的命令.
在网上查阅资料,说是无法使用Linux的环境变量导致.
那迎来了另外一个问题,为什么无法使用Linux的环境变量?
因为环境变量是shell给配置的
有啥办法解决吗
可以解决
1、在linux上创建一个sh文件
2、sh文件中上来先执行 source .bash_profile
3、执行ll,可以正常执行