【发布时间】:2026-01-10 23:55:01
【问题描述】:
我们目前正在编写一个 java 应用程序,该应用程序涉及让用户从我们的程序中执行另一个程序。这个其他程序可以是另一个可执行文件或脚本,并且可以采用任意数量的命令行参数。我们已经构建了一个 GUI 来执行此操作,并且在基本功能案例中,它可以工作。
我们正在使用 apache exec 来执行此操作,尽管此时我实际上并不确定它给我们带来了什么价值。
我遇到的问题是已知的脚本文件类型。
如果您打开 powershell 并输入 ./myVisualBasicScript.vbs,它将在内部将其转换为类似 wscript.exe ./myVisualBasicScript.vbs 的命令。同样,iirc,如果你在 bash 中输入./someTCShellScript.tcsh,它会调用 tcshell 下的那个脚本。
我想知道是否有一个库可以为我提供这种映射。理想情况下,这个库是我可以做类似的事情的地方
CommandLine cmd = new com.awesome.library.CommandLine(
pathToExecutableOrScript,
args
);
cmd.execute();
如果这样的库支持看门狗和超时以及信号处理等,那就太好了,但我正在寻找的主要功能是某种从文件类型(最好同时使用扩展名和元属性)映射到运行它们的可执行文件。
我一直在我们的应用程序中构建地图,并且我至少知道 javas java.awt.Desktop.open() 方法,它几乎可以为我完成这项工作,尽管它更适合 GUI 应用程序。我不确定它是否具有捕获标准输入、输出和错误的功能,或者是否有看门狗和超时等。
非常感谢任何帮助。
【问题讨论】:
-
已标记:要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是题外话,因为它们倾向于吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。
-
...除非只有在图书馆存在的情况下才能做到这一点?如果我们谈论的是 XStream 与 GSon,那么您是对的,但这并不是在一组库中要求一个库,而是在问存在这样一个库。
标签: java bash powershell process exec