Java 使用JSCH运行KornShell脚本
当我试图通过JSCH运行shell脚本时,当它试图调用“sqlplus”时,它会给我一个错误。它将运行shell命令,一切正常,但当脚本尝试使用sqlplus时,它将停止工作。JSCH这样做有什么原因吗 脚本将一直运行,直到调用sqlplus命令为止。它给出的唯一错误是: sqlplus:找不到 使用发生此情况的行号。这是JSCH不能在脚本中运行命令的地方吗?还是我错过了一些我需要设置的频道Java 使用JSCH运行KornShell脚本,java,sqlplus,jsch,Java,Sqlplus,Jsch,当我试图通过JSCH运行shell脚本时,当它试图调用“sqlplus”时,它会给我一个错误。它将运行shell命令,一切正常,但当脚本尝试使用sqlplus时,它将停止工作。JSCH这样做有什么原因吗 脚本将一直运行,直到调用sqlplus命令为止。它给出的唯一错误是: sqlplus:找不到 使用发生此情况的行号。这是JSCH不能在脚本中运行命令的地方吗?还是我错过了一些我需要设置的频道 编辑:进一步测试,它甚至不能在脚本之外运行sqlplus。您使用JSCH登录的用户的路径中没有sqlpl
编辑:进一步测试,它甚至不能在脚本之外运行sqlplus。您使用JSCH登录的用户的路径中没有sqlplus,因此shell无法找到二进制文件 这不是Korn Shell的问题,而是环境问题。必须通过指定sqlplus在磁盘上的完整路径来运行sqlplus,例如
/path/to/sqlplus
,或者将sqlplus添加到您作为用户登录的环境变量$path
如果脚本应该是可移植的,那么通常的做法是不硬编码二进制路径,而是通过一系列测试来查看二进制文件的位置,检查二进制文件的所有公共位置,以及查看它是否在路径上。找到后,将该绝对路径设置为某个变量,然后在需要在脚本中运行二进制文件时使用该变量。您得到的实际错误可能非常重要,因此请将其添加到问题列表中。错误只是“sqlplus:未找到”