Processbuilder 不重定向 StdOut

2023-12-13

是否可以将输出流重定向回进程,或者根本不重定向?

背景故事: 我正在尝试使用 processbuilder 启动可执行文件。 (确切地说是源专用服务器/srcds.exe)

使用 processbuilder 启动它的结果是,该可执行文件的控制台窗口保持为空。启动几秒钟后,可执行文件崩溃并出现错误“CTextConsoleWin32::GetLine: !GetNumberOfConsoleInputEvents”,因为其控制台为空。


我认为您正在谈论使启动的进程的标准输出转到当前进程的标准输出。如果您使用 JDK7,则很简单:

.redirectOutput(ProcessBuilder.Redirect.INHERIT)

Update:(太多评论了)我认为你很困惑。当您从终端启动进程时,该进程将成为该终端进程的子进程,并且 stdout 将发送到该终端。当您从 Java 启动进程时,该进程是 Java 进程的子进程,其标准输出将转到 Java。

在第一种情况下,有一个终端显示标准输出,因为您自己从终端启动了它,这就是终端对标准输出所做的事情。然而,当从 Java 启动时,不会有终端窗口,除非您启动的进程中的某些内容打开了终端,并且您启动的进程的标准输出将返回给您(程序员),让您按照您的意愿进行处理。与从终端启动时看到的行为等效的是Redirect.INHERIT我已经提到过。

你现在的问题不是Java。您的问题是不理解这个“srcds.exe”期望如何处理标准输入和标准输出。弄清楚这一点,然后回来询问如何用 Java 做到这一点。

我现在只是猜测,但您可以尝试从进程的标准输出中读取并将其反馈到标准输入中。也许这就是它所期待的?不过,这听起来很疯狂。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Processbuilder 不重定向 StdOut 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo

随机推荐

  • 如何在 Matlab 中选择子矩阵(不以任何特定模式)

    如何在Matlab中选择子矩阵 不是任何模式 例如 对于一个大小为10 10的矩阵 如何选择由第1 2 9行和第4 6列交集组成的子矩阵 感谢您提供任何有用的答案 TLDR 简答 至于你的问题 假设你有一个任意的 10 10 矩阵A 提取所
  • 当其他应用程序启动时,手电筒会关闭。安卓

    我正在使用 Widget 开发手电筒应用程序 当我在小部件手电筒打开的情况下打开手电筒时 当我启动某些应用程序时 手电筒会关闭 为什么会发生这种情况 为什么我的手电筒无法在后台运行 我怎样才能防止这种情况发生 我希望手电筒只能由用户而不是系
  • 如何在不共享敏感信息的情况下从github推送和拉取?污迹和清洁?

    当我从 github 拉取到服务器存储库时 我想避免覆盖某些文件中的本地化敏感信息 例如 config php 注意 它不是开源类型的存储库 我完全控制存储库 我是唯一的用户 它是私有的 但最重要的是 它基于一个开源框架 可能会改变配置文件
  • 在 VS 2010 C# 项目之间共享 .cs 文件

    我想知道两个独立的 C Windows 项目 在两个独立的解决方案中 是否可以共享一个具有共享定义的 cs 文件 如果是这样 那又如何呢 附言 第一个项目是 ASP NET Web 应用程序 第二个项目是 C Windows 服务 作为 W
  • display:none 是否仍使用渲染性能

    可以说我有这样的标记 div style display none div 浏览器是否仍然使用资源来加载 Flash 对象 或者是否会延迟到调用 javascript 来切换 Flash 对象 dislplay block 现在请记住 我不
  • .NET Core 2.1 HttpClient 不返回预期值

    我正在使用一个接口从这个 url 调用 apihttp localhost 55260 api Accounts GetList 这是控制器的引用 HttpGet Route GetList AllowAnonymous public Ac
  • 单击按钮即可删除/添加类

    我希望能够从 div 中删除一个类 并通过单击按钮添加另一个类 但我无法让它发挥作用 div class hiddennav displaynone ul ul div div class fixednav div class showna
  • 将 Dataframe 传递给 Apply 函数 pandas 作为参数

    可以将 DataFrame 传递给apply像这样的功能 df2 df1 apply func axis 1 args df2 def func df1 df2 do stuff in df2 for each row of df1 ret
  • 在 Athena Aws 中连接行值

    我有 2 个列 可以说 id 和值 我想连接按 id col 分组的值 例如 我有 ID值 1 个 1b 2个 2b 我需要输出为 ID值 1a b 2a b 您可以使用array agg随后是一个array join select id
  • 如何在 Flutter 中使用查询访问 Cloud Firestore 的数组索引?

    我有田地users在文档中 该字段包含数组中的两个元素 我必须检查该数组中的特定两个值 首先 我用了array contains为此方法两次 但出现错误 如何访问 Cloud Firestore 中数组字段的索引 下面的代码是我的方法 但它
  • 存在寄存器溢出机制时,为什么会因为寄存器使用过多而无法启动内核呢?

    1 内核什么时候开始将寄存器溢出到本地内存 2 当没有足够的寄存器时 CUDA运行时如何决定不启动内核并抛出太多资源请求错误 多少个寄存器足以启动内核 3 既然存在寄存器溢出机制 即使没有足够的寄存器 难道不应该启动所有CUDA内核吗 1
  • 将信号连接到插槽会立即导致信号被发射

    我正在用 python 3 3 3 和 pyqt5 编写一个程序 我已经连接了很多信号和插槽 没有任何问题 这导致了一个问题 我的代码如下 def populateVendorAndModelComboBoxes self vendorCo
  • java 中的错误填充异常(RSA 解密)

    在解密 java 中的 RSA Base64 编码字符串时 我遇到一些问题 RSA 加密字符串是由 c Net 生成的 实际上 我使用java创建了公钥和私钥 然后我将公钥交换给 Net Team 他们使用公钥加密了一个字符串RSACryp
  • 复制模板电子表格脚本时,可在 Google 电子表格脚本中安装 onEdit 触发器

    我有一个复制模板电子表格的脚本 A 该电子表格模板中有一个脚本 B 模板电子表格和脚本已成功以编程方式复制并与其他人共享 模板脚本需要使用 onEdit 触发器来修改第三个电子表格 模板电子表格副本中的编辑将同步到第三个电子表格 简单触发器
  • Jquery可排序更新事件只能调用一次吗?

    我正在尝试使用 Jquery 和 Php 进行类别更改 我对此没有问题 我的问题是 当调用更新事件时 它返回 2 个结果 拖动父项有 1 个结果 删除父项有 1 个结果 我只想拨打失联父母的身份证 这是我的脚本 gallery ul sor
  • 如何使用 Cucumber 激活 Spring Boot 配置文件

    我正在寻找一种好方法来激活我的黄瓜测试的弹簧配置文件 黄瓜测试需要使用标记为以下内容的服务的存根版本 Profile test Component class FooServiceStub extends FooService 常规服务如下
  • 检查 pickle 转储的依赖关系

    假设我写了下面的代码 import pickle def foo return foo def bar return bar foo pickle dump bar open bar bin wb 此时 我有一个二进制转储 当然不依赖于fo
  • 如何将单击事件处理程序分配给绘制矩形的一部分?

    想象一下我使用 NET 图形类来绘制一个矩形 然后 我如何分配一个事件 以便如果用户单击某个点或某个点范围 就会发生某些事情 单击事件处理程序 我当时正在阅读 CLR via C 和事件部分 我从所读到的内容中想到了这个场景 这样的代码示例
  • matplotlib:使用 fill_ Between 制作彩色三角形

    我用下面的代码在空间中绘制了随机三角形 但我想用颜色填充三角形 我知道fill between matplotlib 中的函数 但是我不确定如何在下面的示例中实现它 import matplotlib pyplot as plt trian
  • Processbuilder 不重定向 StdOut

    是否可以将输出流重定向回进程 或者根本不重定向 背景故事 我正在尝试使用 processbuilder 启动可执行文件 确切地说是源专用服务器 srcds exe 使用 processbuilder 启动它的结果是 该可执行文件的控制台窗口