首页 > 解决方案 > 调用子进程时如何通过窗口提示

问题描述

我有一个 jar 文件,我想在命令行中运行并使用 python 脚本收集它的标准输出。

我将调用作为子进程进行,例如:

def get_output():
  process = subprocess.run(['java', '-jar', 'myjar.jar', 'myfileargument'])

但是出现了一个我无法禁用的警告提示,它会暂停执行,直到用户单击“确定”或按 Enter 键。有没有办法在通过代码出现的提示窗口中基本上“单击确定”并让 python 脚本继续?

标签: pythonpython-3.xinputsubprocessoutput

解决方案


如果您没有办法,只能使用子进程的环境变量和参数来禁用该警告,那么没有简单的方法可以做到这一点。

正如@furas 在评论中提到的那样,您要么必须走 UI 自动化之路。考虑到有多种工具/框架可以做到这一点,这样做可能相对容易。

或者您可以“修补”jar不需要此警告。如果您可以将烦人的.class文件替换为不需要接受警告的另一个文件,那么它可能会有些效率。或者你可以在 java 程序中安装一个自定义的 ClassLoader,但这可能会很困难。


推荐阅读