使用环境变量通过Java实现SSH

使用环境变量通过Java实现SSH,java,shell,variables,ssh,environment,Java,Shell,Variables,Ssh,Environment,我正在编写一个java代码,以使用java ganymed插件(也尝试使用JSch)连接到Unix远程服务器 我需要在远程服务器上运行一个shell脚本,它使用该登录的一些环境变量。我的登录成功,脚本执行但未完成。与运行Putty等交互式登录shell(使用“env”命令)相比,我检查了环境变量是否没有完全加载 在编写脚本之前,我尝试运行/etc/profile、.bashrc等。脚本向前移动了一步,但再次停止。所以很明显,加载了一些环境变量,但不是全部。我需要一个变通方法来确保为Java非交互

我正在编写一个java代码,以使用java ganymed插件(也尝试使用JSch)连接到Unix远程服务器

我需要在远程服务器上运行一个shell脚本,它使用该登录的一些环境变量。我的登录成功,脚本执行但未完成。与运行Putty等交互式登录shell(使用“env”命令)相比,我检查了环境变量是否没有完全加载

在编写脚本之前,我尝试运行/etc/profile、.bashrc等。脚本向前移动了一步,但再次停止。所以很明显,加载了一些环境变量,但不是全部。我需要一个变通方法来确保为Java非交互式会话加载所有环境变量。我没有远程服务器的root权限

谢谢,
Arya

不要尝试运行
/etc/profile
.bashrc
,而是尝试将它们用作源脚本。将其作为脚本或命令的一部分执行:

. .bashrc
. /etc/profile
. /etc/environment

或任何其他相关的配置脚本(文件的点播非常重要)。

感谢您的回复。我尝试将这些添加到shell脚本的开头。同样,还有一些未初始化的环境变量。但我不确定是哪一个。不管怎样,我都会检查哪些是我需要显式运行的,它们在正常的交互式登录上运行。
. .bashrc
. /etc/profile
. /etc/environment