高手的存在,就是让服务10亿人的时候,你感觉只是为你一个人服务......

ganymed-ssh2 java环境变量设置

目录

使用gantmed-ssh2的session远程执行服务器上java命令(session.execCommand(“java”))的时候,发现java命令不存在。

bash: java: command not found

原因是与Linux主机建立连接的时候session没有读取java环境变量等信息。


解决方法:

  1. 执行java命令的时候使用绝对路径
1
session.execCommand("/opt/jdk1.8/bin/java")
  1. 设置/etc/environment
    我这边是通过该方法设置的,毕竟set once ,always use
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* 设置java运行环境
*
* @return
*/
public static boolean setJavaEnv(Connection connection) {
boolean result = false;

String cmd = "echo \"export PATH=$PATH:`find /opt/wildfly/ -name java ! -path '*jre*'|head -n 1|awk -F java '{print $1}'`\">>/etc/environment &&source /etc/environment";
SshResponse sshResponse = excuteCmd(connection, cmd);
String successMsg = sshResponse.getSuccessMsg();
if (null != successMsg && successMsg.contains("Jps")) {
result = true;
}
return result;
}