(Java) Runtime.exec 中的文件重定向(双向)?

2023-11-29

我想执行这个命令:

/ceplinux_work3/myName/opt/myCompany/ourProduct/bin/EXECUTE_THIS -p cepamd64linux.myCompany.com:19021/ws1/project_name < /ceplinux_work3/myName/stressting/Publisher/uploadable/00000.bin >> /ceplinux_work3/myName/stressting/Publisher/stats/ws1.project_name.19021/2011-07-22T12-45-20_PID-2237/out.up

但它不起作用,因为 EXECUTE_THIS 需要通过重定向输入文件,并且简单地将此命令传递给 Runtime.exec 不起作用。

旁注:在来这里询问之前,我全面搜索了如何解决这个问题。网上有很多关于 Runtime.exec 和输入/输出重定向的问题/文章。但是,我找不到任何处理将文件传递给命令并将结果输出到另一个文件的方法。另外,我完全不熟悉输入/输出流,所以我很难根据我的具体情况将所有信息放在一起。

也就是说,非常感谢任何帮助。

附:如果有多种方法可以做到这一点,我更喜欢吞吐量最快的方法。

编辑:正如我在上一个问题中所讨论的,我不能将其更改为 bash 调用,因为程序必须等待此过程完成才能继续。


除非您要发送文件name对于进程的标准输入,数据是来自文件还是来自任何其他数据源没有区别。

您需要写信给OutputStream给出的Process.getOutputStream()。您写入的数据您可以读取in从文件中使用FileInputStream.

把它们放在一起可能看起来像这样:

    Process proc = Runtime.getRuntime().exec("...");

    OutputStream standardInputOfChildProcess = proc.getOutputStream();
    InputStream dataFromFile = new FileInputStream("theFileWithTheData.dat");

    byte[] buff = new byte[1024];
    for ( int count = -1; (count = dataFromFile.read(buff)) != -1; ) {
        standardInputOfChildProcess.write(buff, 0, count);
    }

我省略了很多细节,这只是为了了解要点。您需要安全地关闭某些东西,可能需要考虑缓冲,并且您需要担心的陷阱Runtime.exec().

Edit

将输出写入文件的情况类似。获得一个FileOutputStream指向输出文件并写入您读取的数据Process.getInputStream()对此OutputStream。这里主要的警告是你must在第二个线程中执行此操作,因为从同一线程访问两个阻塞流将导致死锁(请参阅上面的文章)。

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

(Java) Runtime.exec 中的文件重定向(双向)? 的相关文章

  • 唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.xxx”; SQL语句

    每当我的应用程序启动时 我都会收到以下错误消息 Caused by org h2 jdbc JdbcSQLException Unique index or primary key violation PRIMARY KEY ON PUBL
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • 我需要在 Spring 中检查每个控制器中的有效会话吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设在 Spring Mvc 的 Web 应用程序中 我们是否需要检查每个控制器或 jsps 中的有效会话 我该如何解决 MVC 中的
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n

随机推荐

  • 指定与 DotNetOpenID 一起使用的代理

    我正在使用 DotNetOpenID 为我们的网站提供信赖方 OpenID 支持 所有外部请求都必须通过代理服务器进行代理 我正在寻找一种方法来告诉 DotNetOpenID 使用此代理 我知道我可以在 web config 中设置全局代理
  • Swift 中数组下标的简写 setter 声明

    In my 最后一个问题 我问如何在 Swift 中为计算属性的下标编写 setter 我认为我的问题不够具体 无法理解 对于一项小任务来说 给出的答案要么不正确 要么很复杂 经过长时间的思考 我仍然认为也许一个更聪明的人可以提供更鼓舞人心
  • UIWebView 中自动播放视频

    您好 我有一个网络视图 当我尝试加载其中的视频文件时 它会自动开始播放视频 无需用户干预 并且播放按钮仍然显示在 web 视图中 视频正在其后面播放 我正在使用以下代码来加载 URL NSURL url NSURL fileURLWithP
  • 下载 Google Drive 中的公共文件 (Python)

    假设有人给了我一个链接 使我能够下载 Google 云端硬盘中的公共文件 我想编写一个可以读取链接然后将其下载为文本文件的程序 例如 https docs google com document d 1yJVXtabsP7KrJXSu3Xy
  • mySQL str_to_date() 函数返回错误

    当尝试使用 str to date 将 Estimates 表中的字符串日期值列 CreatedDate 转换为 mySQL 日期格式时 我不断收到错误消息 我的数据列包含 m d yy 格式的日期 例如 1 26 16 或 3 3 16
  • 如何通过母版页隐藏某些页面上的内容而不是其他页面上的内容?

    阅读这篇文章 但没有真正回答我的问题 并且有很多建议 所以不确定它们是否在正确的轨道上 针对asp页面的母版页内容过滤 我拥有的是一个带有 1 个母版页的网站 其中有一个所有页面都使用的全局页脚 我想仅删除一页 即登录页面 上的页脚 但保持
  • 由于 Mininet 中的身份验证错误,X11 连接被拒绝

    每当我从 mininet 中运行 xterm 时 我都会收到此消息 mininet gt xterm h1 mininet gt X11 connection rejected because of wrong authentication
  • 不使用任何数据结构查找两个集合的交集的算法

    我想知道在不使用任何外部数据结构 如哈希表 的情况下有效地确定两个相等元素 例如整数 数组的交集的算法 O nlogn 排序 然后使用迭代器对每个 element 数组进行迭代 if A iter1 gt B iter2 increase
  • 如果 Windows 资源管理器在特定路径打开,则不创建新实例

    我正在使用以下代码 以便当用户单击按钮时 会出现一个实例Windows资源管理器在特定路径上打开 但这会导致一个新的实例Explorer待打开 我想改变它 这样 如果Explorer如果已经在同一路径中打开 则程序不会创建新进程 而是将打开
  • 根据内容过滤Array中的字符串(过滤搜索值)

    我遇到了一个问题 我在 JS 中有一个类似的字符串数组 var myArray bedroomone bedroomonetwo bathroom 我想检索数组中包含关键字 bedroom 的所有元素 我怎样才能达到这样的结果 我尝试了不同
  • 快速加权散点矩阵计算

    六个月前在这个问题中 jez 很好地帮助我提出了行差异外积的快速近似 即 K np zeros len X len X for i Xi in enumerate X for j Xj in enumerate X dij Xi Xj K
  • 如何在 Python 2.5 中检查类相等性?

    我浏览了 Python 2 5 文档 但找不到答案 How do I check if an object is the same class as another object def IsClass obj1 obj2 return o
  • Java 可以在不改变活动窗口的情况下显示对话框吗?

    我想在上面显示一个模式 进度 对话框Frame 即使那样Frame不是活动窗口 但是 显示对话框会导致该对话框或其所有者成为活动窗口 有没有一种方法可以显示对话框而不使其或其所有者成为活动窗口 特别是在 Windows 平台上 我想这样做的
  • 在 Spring MVC 应用程序中实现 Swagger 的“简单”方法

    我有一个用简单的 Spring 编写的 ReSTFul API 没有 Spring Boot 没有花哨的东西 我需要在其中实现 Swagger 到目前为止 互联网上的每个页面都让我抓狂 因为令人困惑的配置和臃肿的代码我根本找不到可移植性 有
  • ios13 防止下拉滚动到顶部的 tableView 来消除表单样式模态呈现的 viewController [重复]

    这个问题在这里已经有答案了 我有一个 tableViewController 它以默认的工作表样式呈现方式呈现 我想保留这种模式风格 因为它看起来不错并且在我的应用程序中运行良好 我喜欢下拉导航栏时的关闭 然而 我不想要的是下拉 table
  • 在snakemake规则的日志部分中定义的文件与在输出部分中定义的文件有很大不同吗?

    我认为的文档log蛇形规则的一部分 必须 手动 将内容发送到日志文件 在我看来 使用中定义的文件可以获得相同的结果output部分 这两种可能的方法之间的重要区别是什么 其真正的用处是什么log部分 对我来说 日志的最佳实践是 Snakem
  • 找到修剪周围空白的 svg viewbox

    假设我有一个绘制一些路径的 svg 我应该使用什么工具来找到一个完全适合这些路径的视图框 以便修剪周围的所有冗余空间 您只需将 svg 的 viewBox 设置为其边界框即可 function setViewbox svg var bB s
  • 如何设置像表格一样的选择选项样式?

    我有一个表单选择下拉菜单 我想格式化选项的内部文本 每个选项都有月份 年份和标题 我希望每个人都能相互协调 我尝试在选项元素内放置一个表格 看看是否可以强制它 但失败了 我尝试使用不间断空格 但也失败了 我相信是因为字母的字体系列样式 这是
  • Dockerfile 中的 VOLUME 是否在 kubernetes 中持久存在

    一些 Dockerfile 有一个VOLUME命令 当此类容器部署在 Kubernetes 中 但没有提供 kubernetes 卷 没有持久卷 PV 或持久卷声明 PVC 时 会发生什么情况 文件存储在哪里 音量是否持续 例如 Docke
  • (Java) Runtime.exec 中的文件重定向(双向)?

    我想执行这个命令 ceplinux work3 myName opt myCompany ourProduct bin EXECUTE THIS p cepamd64linux myCompany com 19021 ws1 project