gpt4 book ai didi

JAVA runtime exec 在大型机 USS 环境中为 netstat 命令抛出 IOException

转载 作者:行者123 更新时间:2023-11-29 04:57:55 25 4
gpt4 key购买 nike

我正在尝试使用运行时执行从 java 执行 netstat 命令,但它抛出以下 IOException。

它适用于其他命令,即使是同义词命令 onetstat 也能正常工作。我试图理解为什么 netstat 单独失败以及如何使其工作。任何帮助表示赞赏。

java.io.IOException: Cannot run program "netstat": netstat: not found
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1059)
at java.lang.Runtime.exec(Runtime.java:629)
at java.lang.Runtime.exec(Runtime.java:462)
at java.lang.Runtime.exec(Runtime.java:359)
at com.ca.RunCmd.executeCommand(RunCmd.java:30)
at com.ca.RunCmd.main(RunCmd.java:18)
Caused by: java.io.IOException: netstat: not found
at java.lang.UNIXProcess.fullPath(UNIXProcess.java:306)

最佳答案

要真正理解这里发生了什么,您需要查找实际的可执行文件,无论是 netstat 还是 onetstat。

如果 netstat 在 shell 中被别名为 onetstat - 根据您运行的 shell,“whence”或“alias”命令会告诉您。一个简单的解决方案可能是通过 shell (/bin/sh -c netstat) 运行命令,而不是直接运行 netstat。

另一种可能性是,这些命令是所谓的“外部链接”……UNIX 服务路径名指向 z/OS 数据集中常规可执行文件的一种方式。如果是这种情况,那么您很可能在您的路径中有 netstat/onetstat 并且在其他方​​面是正确的,但您可能没有正确的 STEPLIB 或 LNKLST 串联。当系统 exec 的目标 (netstat/onetstat) 时,它没有找到外部链接的程序,并且您得到“未找到”。

这里可能会出现各种问题,尤其是涉及到外部链接时。可能存在系统 (APF) 授权问题、STEPLIB/LNKLST 中缺少模块、没有足够的内存来加载程序等等。不幸的是,z/OS 上的 UNIX 服务并不总是解释所有可能的故障代码,所以有时它是必须去打猎。一个好的开始是捕获您遇到的异常并查找 ERRNO/ERRNO2 值——它们可以给您一个很好的提示。

如果您有传统的 z/OS 设施,您的 friend 就是控制台日志...SDSF 的日志功能或等效功能。控制台上很可能会出现 x06 异常终止和 CSV... 消息,为您提供下一步操作的线索。

关于JAVA runtime exec 在大型机 USS 环境中为 netstat 命令抛出 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com