jjzjj

java - CLI 进程的线程池

我需要通过Java的标准输入将消息传递给CLIPHP进程。我想在一个池中运行大约20个PHP进程,这样当我将一条消息传递到池中时,它会将每条消息发送到一个单独的线程,从而保持要传递的消息队列。我希望这些PHP进程尽可能长时间地保持Activity状态,如果其中一个进程死亡,则会启动一个新进程。我看着用静态线程池来做这件事,但它似乎更适合执行并简单地死掉的任务。我怎么能用一个简单的界面将消息传递到池中呢?我是否必须实现自己的自定义“线程池”? 最佳答案 我正在为此提供一些代码,因为我认为它会让事情变得更清楚。基本上你需要保留一个进程对

Java+Eclipse : how do you debug a java program that is receiving piped/redirected stdin?

我正在使用Eclipse开发一个Java程序,我想我应该在我的程序中添加一个选项来在没有参数的情况下解析标准输入。(否则它解析一个文件)如果我执行"somecommand|java-jarmyjar.jar"并去调试,我会遇到问题......然后意识到我不知道如何在Eclipse中启动一个进程.如果我在命令提示符下运行它,我无法附加到正在运行的进程,因为该进程会立即启动。关于如何调试有什么建议吗?编辑:看,问题是,我最初编写我的程序是为了采用文件名参数。然后我认为它也采用stdin会很有用,所以我确实从我的程序中抽象了InputStream(正如Queue先生所建议的)。它在文件(ja

python sys.stdin(详细介绍readline()和readlines())

在Python中,sys.stdin是sys模块的一部分,用于处理标准输入流(stdin)。详细介绍sys.stdin.readline()和sys.stdin.readlines()sys.stdin.readline()方法从标准输入中读取一行用户输入。sys.stdin.readline()importsysdefmain():print("请输入一行文本:")#从标准输入读取一行,并移除行尾的换行符user_input=sys.stdin.readline().strip()print(f"您输入的文本是:{user_input}")if__name__=="__main__":mai

java - 并发运行外部程序并通过stdin/stdout与其通信

我希望能够与我的Java代码同时运行外部程序,即我想启动该程序,然后将控制权返回给调用方法,同时保持外部程序运行。然后Java代码将继续生成输入并将其发送到外部程序并接收返回的输出。我不想继续加载外部程序,因为它的开销非常高。完成此任务的最佳方法是什么?谢谢! 最佳答案 看看ProcessBuilder。一旦您设置了ProcessBuilder并执行了start,您将拥有一个Process的句柄,您可以向其提供输入和读取输出.这里有一个片段可以帮助您入门:ProcessBuilderpb=newProcessBuilder("/bi

java - 如何停止使用 Scanner 从 stdin 读取多行?

我正在处理一个JAVA任务,它应该处理多行输入。说明为“输入是从标准输入读取的。”示例输入示例:one1two2three3我不明白上面的示例输入“从标准输入读取”是什么意思。这是我编写的一个测试程序,可以解决我的困惑:importjava.io.*;importjava.util.Scanner;classTest{publicstaticvoidmain(String[]args){Scannerstdin=newScanner(System.in);while(stdin.hasNextLine()){Stringline=stdin.nextLine();String[]tok

java - 如何将 InputStream 通过管道传输到 ProcessBuilder

请往下看第二次更新。我不想改变这个问题之前的上下文。我正在使用来自Java应用程序的wkhtmltoimage。使用它的标准方法是-path-to-exehttp://url.com/image.png。根据他们的文档,如果我们写一个-而不是输入URL,输入将转换为STDIN。我正在使用ProcessBuilder启动流程-ProcessBuilderpb=newProcessBuilder(exe_path,"-",image_save_path);Processprocess=pb.start();现在我不知道如何将输入流通过管道传输到这个进程。我将一个模板文件读入了DataInp

java - javac 可以从 stdin 编译吗?

javac可以从标准输入编译吗?像这样:catmyfile|javac 最佳答案 不,没有这样做的选项。来自documentation:Therearetwowaystopasssourcecodefilenamestojavac:Forasmallnumberofsourcefiles,simplylistthefilenamesonthecommandline.Foralargenumberofsourcefiles,listthefilenamesinafile,separatedbyblanksorlinebreaks.Th

java - 测试从 stdin 读取并写入 stdout 的 java 程序

我正在为Java编程竞赛编写一些代码。程序的输入是使用stdin给出的,输出是在stdout上。你们如何测试在stdin/stdout上运行的程序?这就是我的想法:由于System.in是InputStream类型,而System.out是PrintStream类型,我用这个原型(prototype)在func中编写了我的代码:voidprintAverage(InputStreamin,PrintStreamout)现在,我想使用junit对此进行测试。我想使用字符串伪造System.in并接收字符串中的输出。@TestvoidtestPrintAverage(){Stringinp

使用 gradle run 启动应用程序时,java.util.scanner 抛出 NoSuchElementException

我创建了一个简单的Java“echo”应用程序,它接受用户的输入并将其返回给他们以演示问题。我可以使用IntelliJ的内部“运行”命令毫无问题地运行此应用程序,并且在执行由gradlebuild生成的已编译java文件时也是如此。但是,如果我尝试使用gradlerun执行应用程序,我会从扫描器中抛出NoSuchElementException。我认为gradle或应用程序插件特别对系统IO做了一些奇怪的事情。申请packageorg.gradle.example.simple;importjava.util.Scanner;publicclassHelloWorld{publicst

c++ - 在 c/c++ 中编辑从 stdin 打印在 stdout 上的文本

我有以下问题:如何在我的程序中打印文本,以便我可以对其进行编辑?例如,程序打印到标准输出:C:\\BlaBlaBla\file.txt我可以按下退格键,编辑这段文字:C:\\BlaBlaBla\file_1.txt我很乐意提供任何信息。 最佳答案 获得命令行编辑的一种方法是使用GNUreadline提供的功能图书馆。 关于c++-在c/c++中编辑从stdin打印在stdout上的文本,我们在StackOverflow上找到一个类似的问题: https://s