可以说我有2个单独的Java应用程序javaapp1和javaapp2。
从javaapp1,我正在执行.bat文件(负责启动javaapp2)。
javaaap1和javaapp2彼此独立。
假设我正在使用process.exec或processbuilder进行此操作。
现在我的问题是:
在这种情况下,如果exitCode不为0,则意味着什么?是否表示执行批处理文件时出现错误
或在javaapp2的代码中?或两者?
是否可以从javaapp1中的javaapp2捕获错误?由于我不是直接调用javaapp2的类。
javaapp2错误和输出是否由javaapp1处理?
最佳答案
退出代码将是其他Java应用程序在System#exit()
调用中返回的代码。如果通过bat
文件执行该文件,则需要确保将其正确传递回去。
您可以让它写入stdout或stderr,然后分别由Process#getInputStream()
和Process#getErrorStream()
提供。
如果它包含正确处理1)和2)提到的结果的代码,则为是。
相关文章:
When Runtime#exec() won't-讨论要了解的重要陷阱。
关于java - java processbuilder/rt.exec问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3471579/