Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将命令行输出写入文本文件_Java_Linux_Command Line - Fatal编程技术网

Java 将命令行输出写入文本文件

Java 将命令行输出写入文本文件,java,linux,command-line,Java,Linux,Command Line,因为有一种简单的方法可以使用将结果写入输出文件,但这在我的情况下不起作用 我有一种客户机-服务器场景,首先启动服务器- java -mx500m -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz & 现在服务器处于侦听模式。在这里,我开始客户端即时我有

因为有一种简单的方法可以使用
将结果写入输出文件,但这在我的情况下不起作用

我有一种客户机-服务器场景,首先启动服务器-

java -mx500m -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz &
现在服务器处于侦听模式。在这里,我开始客户端即时我有问题

java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -client 
这要求输入输入句子,并在按enter键时在命令行上打印结果。我试过这样做

java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -client > result.txt
这会立即停止客户端。若它从文本文件中读取输入并将其写入结果文本文件,我就可以了

正确的方法是什么?

试试看

echo "input sequence" | xargs java -cp stanford.jar NERServer -port 9191 -client > result.txt
这将用于将带有参数的命令重定向到文件

如果您只是想将参数传递给命令,那么您只需要

java -cp stanford.jar NERServer -port 9191 -client < result.txt`
xargs
应将您的参数从文件发送到
java
程序


另外,为了简洁易读,我省略了包名

如果我正确理解了您的查询,您希望

" java-cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer-端口9191-客户端 "

从“result.txt”获取输入

在这种情况下,应该执行

“java-cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer-端口9191-客户端 更正回复:

那你应该试试这个

“java-cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer-端口9191-客户端y.txt”


从x.txt读取输入并将输出写入y.txt,如果需要,可以同时重定向标准输入和标准输出:

java -cp stanford.jar NERServer -port 9191 -client < input.txt > result.txt
在执行输入/输出重定向时,应用程序的运行方式与不重定向输入/输出的方式完全相同

它不知道也不关心您是从键盘输入,还是从某个地方重定向。 因此,它总是将相同的内容打印到标准输出(在您的情况下)

按RETURN可对其进行标记,或按RETURN可完成标记


在解释results.txt时,除了丢掉results.txt中的第一行之外,您对此无能为力。

很抱歉,您理解错误,我想从x.txt文件得到结果,并想将结果写入y.txt。谢谢,亲爱的,但这里有个问题。当我执行第一个命令,而不是将输出写入
result.txt
时,它会写入消息
输入一些文本,然后按RETURN键对其进行标记,或者直接返回到finish。
。这是客户端命令执行时命令行上显示的消息谢谢,这是我所需要的,但除了写入结果外,它还写入消息
输入一些文本并按RETURN键将其标记,或者只需返回以完成
这是消息,当用户执行客户机命令时,这些命令会打印在命令行上,这是一种方式,从结果中抛出第一行。可以从jar中提取代码并更改代码吗?可以在jar中反编译二进制类,然后进行更改,甚至在字节码级别更改类。但我想这是一个开源项目,所以如果你想改变它,只需下载源代码,做出改变并重建它。
java -cp stanford.jar NERServer -port 9191 -client < input.txt > result.txt
echo -e "line1\nline2" | java -cp stanford.jar NERServer -port 9191 -client > r.txt