jjzjj

java - 在 Java 7 中使用 ProcessBuilder 构建流程管道

我一直在尝试弄清楚如何使用新的ProcessBuilder在Java中管理一些进程。我找不到一个合适的例子来说明我想做什么,当我尝试自己做的时候,这个过程就会挂起。我希望有一个非常简单的代码示例,它运行的等效于cattest.txt|wc,但不是通过shell。--更新--好吧,澄清一下。我知道有一些方法可以通过读写流来模拟管道。我想知道这是否是由redirectInput以某种自动方式完成的和redirectOutputJava7中引入的方法。 最佳答案 在这种情况下你不需要管道。"grepblatest.txt"但是假设你需要一

java - 如何在 Java 中通过 exec 使用管道符号

这个问题在这里已经有了答案:HowtomakepipesworkwithRuntime.exec()?(4个答案)关闭9年前。我正在使用以下代码获取系统中运行的所有进程的详细信息:Processp=Runtime.getRuntime().exec("psaux");BufferedReaderstdInput=newBufferedReader(newInputStreamReader(p.getInputStream()));BufferedReaderstdError=newBufferedReader(newInputStreamReader(p.getErrorStream(

"piping"的 Java 习语

是否有比以下更简洁/标准的习惯用法(例如,JDK方法)用于将输入“管道化”到Java中的输出?publicvoidpipe(Readerin,Writerout){CharBufferbuf=CharBuffer.allocate(DEFAULT_BUFFER_SIZE);while(in.read(buf)>=0){out.append(buf.flip());buf.clear();}}[编辑]请注意Reader和Writer是给予的。正确答案将演示如何取in和out并形成一个管道(最好不超过1或2个方法调用)。我会接受in的答案和out是InputStream和一个OutputS

java - 使用 Java 读取/写入 linux 管道

我的问题是在Java中读取/写入linux管道的最佳方式是什么?我已经在使用java.io.RandomAccessFile了RandomAccessFilefile=newRandomAccessFile("/dev/zap/16","rw");然后将其传递给工作线程,工作线程每2毫秒读取一次byte[]buffer=newbyte[16];file.read(buffer);它确实从Pipe读取它,但我怀疑某些字节被覆盖了。你知道linux(ubuntu)是如何处理管道缓冲区的吗? 最佳答案 我自己从未尝试过,但感觉你所做的是错

java - Spring websockets Broken pipe & client 没有收到消息

我在使用websockets时遇到了一些问题:java.io.IOException:BrokenPipe客户端没有收到消息长话短说我想知道的主要事情:请列出客户端关闭连接的所有可能情况(刷新或关闭选项卡除外)。除了服务器通过断开的连接向客户端发送消息之外,是否会发生断开的管道异常?如果是,那么如何?尽管服务器确实发送心跳,但服务器不发送消息的可能情况有哪些?(发生这种情况时,我需要重新启动应用程序才能使其再次工作。这是一个糟糕的解决方案,因为它已经投入生产。)我有一个使用websockets的SpringMVC项目;SockJS客户端和org.springframework.web.

scala - Scala 有哪些开发良好的 iteratee/pipes 库?

Scala是否有任何符合Haskell管道精神的开发良好的库,或者至少iteratee?我首先找到了Play的iteratee库,但我无法让它工作,而且它似乎与Play的并发原语Promise紧密耦合,这在很多情况下可能是不合适的。Scalaz有一些迭代器支持(如IterV),但似乎只有核心类没有额外的支持功能、预定义的迭代器/枚举器等。我也找不到任何文档,甚至scaladoc也非常稀疏,所以很难正确使用。而且我找不到任何类似于管道的东西。 最佳答案 基于Travis的评论,目前有:Scalaz7iteratee包(你提到的iter

java - 异常 "javax.servlet.jsp.JspException: Broken pipe"表示什么?

我收到以下错误:javax.servlet.jsp.JspException:Brokenpipe现在我看到了关于套接字异常的问题/答案,但这个错误来自不同的包。非常感谢任何帮助。顺便说一句,我在strutsweb应用程序WeblogicNode日志中看到了很多这样的错误,我认为这与最终用户在页面重新加载/执行下一步之前关闭他们的web浏览器有关(数据库事务需要相当多的时间)需要一点时间来执行,从30秒到4分钟不等)。 最佳答案 Iamthinkingthatithastodowithendusersclosingtheirwebb

c++ - 如何在此代码 C++ 中使用管道?

我遇到了大麻烦,因为我不知道该怎么做。我只需要创建2个可以通信的进程。这是代码:/*Wrappers*/this->sock_fd=this->w_socket();this->w_bind();this->w_listen();std::coutw_accept(&client_addr);charclient_ip[64];intclient_port=ntohs(client_addr.sin_port);inet_ntop(AF_INET,&client_addr.sin_addr,client_ip,sizeof(client_ip));std::coutsock_fd);t

java - 将 std*** 从 C++ 重定向到 Java 以进行日志记录

我有一个C++应用程序和一个Java应用程序需要以相同的方式记录消息。我的Java应用程序使用由Log4j配置支持的ApacheCommonsLogging。我需要一个log4j配置,这样我就可以在一个位置更改我的日志记录首选项。在我的C++应用程序中,我捕获了对printf()和fprintf(std***)的所有调用,并且我认为我有以下选项:在我的C++应用程序中fork,从(f)printf()调用创建一个管道到新进程标准输入,然后启动一个Java程序,该程序使用CommonsLogging从标准输入和日志中读取使用JNI的JNI_CreateJVM()在C++应用程序中创建JV

c++ - 是否可以使用 C++ 流类来缓冲从管道读取的数据?

简而言之,是否可以按照此伪示例所描述的方式,从流类的管道中进行缓冲读取。请忽略你看到的任何迂腐的问题(比如不检查错误等);我在我的真实代码中做了所有这些,这只是一个伪示例来解决我的问题。#include//oristream,ifstream,strstream,etc;whateverstreamcouldpullthisoff#include#include#includevoidmyFunc(){intpipefd[2][2]={{0,0},{0,0}};pipe2(pipefd[0],O_NONBLOCK);pipe2(pipefd[1],O_NONBLOCK);if(0==f