这是我的问题: 我有一个.bat文件,它有许多命令。当我使用processbuilder从我的java程序中调用这个bat文件时,它开始在.bat文件中逐行执行命令。但是,当它到达执行perl程序的最后一行时,它会挂起并且程序永远不会结束。它永远挂在那里。任何想法为什么这可能会发生。仅供参考,perl代码没有问题,我可以执行从Java程序执行批处理文件时出错
1
A
回答
0
嘿,我能够解决这个问题。我所要做的只是在我的java代码中包含一个关闭进程输出流的声明。没有它,它正在等待命令行中的perl程序被永久执行。我不完全确定这种行为,任何信息都可以帮助
2
您的perl程序是否写入标准输出? 我怀疑问题是Java进程将子进程的标准输出和标准错误输出重定向到管道。 该管道的接收端连接到java程序,因此如果您未能读取其输出,则从Java调用的写入标准输出/错误的任何子进程都会阻塞。 您必须从Java程序中删除perl程序的输出或读取子进程的输出(Process.getInputStream()
和/或Process.getErrorStream()
)。
+0
:嘿,我能够解决这个问题。我所要做的只是在我的java代码中包含一个关闭进程输出流的声明。没有它,它正在等待命令行中的perl程序被永久执行。我对这种行为并不确定,任何信息都会有所帮助。 – Max 2011-03-06 06:55:52
相关问题
- 1. 从.CHM文件执行批处理文件时出错
- 2. 远程执行批处理文件java
- 3. Java&SQL - 批处理必须执行或清除批处理时出错
- 4. 执行Java应用程序的批处理文件
- 5. 批处理文件执行
- 6. 从C#执行批处理文件#
- 7. 从Java程序执行Ghostscript时出错
- 8. 处理从批处理文件运行Java的错误
- 9. 从Windows执行批处理文件窗体应用程序
- 10. 如何从批处理文件执行c#console应用程序
- 11. 从java批处理文件运行jar
- 12. 从java运行批处理文件
- 13. 从批处理执行java JCL
- 14. 我们如何从Java执行批处理文件
- 15. 如何从java执行批处理文件?
- 16. 使用Java在远程系统上执行批处理文件
- 17. 执行批处理文件时出现问题Mysql
- 18. 从另一个批处理文件运行批处理文件
- 19. 执行批处理文件时ECHO关闭错误
- 20. 在eclipse上执行我的程序时运行批处理文件,但使用jar文件时出现问题
- 21. 如何在程序启动之前执行批处理文件?
- 22. 在NSIS安装程序中执行批处理文件
- 23. 从批处理文件执行时,ICACLS表现怪异
- 24. 如何从批处理文件在执行时
- 25. 从C#表单应用程序执行远程批处理文件
- 26. 为什么执行应用程序时批处理文件有时会挂起?
- 27. 批处理文件执行ASP经典
- 28. 的MSBuild PSEXEC执行批处理文件
- 29. Windows批处理文件执行日志
- 30. 在C#中执行批处理文件#
你可以从java运行perl,带或不带'.bat'脚本吗? – 2011-03-01 10:36:23
我的猜测是PATH环境var没有设置,因此没有找到perl解释器。尝试提供tjhe perl解释器的完整路径:c:\ path \ to \ perl \ perl.exe ... – rene 2011-03-01 10:39:14
我想我们需要看到批处理文件和Perl脚本有任何帮助。看看你是否可以在一个小例子中复制bug行为,你可以在这里发表。 – 2011-03-01 13:25:39