Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JSCH运行KornShell脚本_Java_Sqlplus_Jsch - Fatal编程技术网

Java 使用JSCH运行KornShell脚本

Java 使用JSCH运行KornShell脚本,java,sqlplus,jsch,Java,Sqlplus,Jsch,当我试图通过JSCH运行shell脚本时,当它试图调用“sqlplus”时,它会给我一个错误。它将运行shell命令,一切正常,但当脚本尝试使用sqlplus时,它将停止工作。JSCH这样做有什么原因吗 脚本将一直运行,直到调用sqlplus命令为止。它给出的唯一错误是: sqlplus:找不到 使用发生此情况的行号。这是JSCH不能在脚本中运行命令的地方吗?还是我错过了一些我需要设置的频道 编辑:进一步测试,它甚至不能在脚本之外运行sqlplus。您使用JSCH登录的用户的路径中没有sqlpl

当我试图通过JSCH运行shell脚本时,当它试图调用“sqlplus”时,它会给我一个错误。它将运行shell命令,一切正常,但当脚本尝试使用sqlplus时,它将停止工作。JSCH这样做有什么原因吗

脚本将一直运行,直到调用sqlplus命令为止。它给出的唯一错误是:

sqlplus:找不到

使用发生此情况的行号。这是JSCH不能在脚本中运行命令的地方吗?还是我错过了一些我需要设置的频道


编辑:进一步测试,它甚至不能在脚本之外运行sqlplus。

您使用JSCH登录的用户的路径中没有sqlplus,因此shell无法找到二进制文件

这不是Korn Shell的问题,而是环境问题。必须通过指定sqlplus在磁盘上的完整路径来运行sqlplus,例如
/path/to/sqlplus
,或者将sqlplus添加到您作为用户登录的环境变量
$path


如果脚本应该是可移植的,那么通常的做法是不硬编码二进制路径,而是通过一系列测试来查看二进制文件的位置,检查二进制文件的所有公共位置,以及查看它是否在路径上。找到后,将该绝对路径设置为某个变量,然后在需要在脚本中运行二进制文件时使用该变量。

您得到的实际错误可能非常重要,因此请将其添加到问题列表中。错误只是“sqlplus:未找到”