可以说我有2个单独的Java应用程序javaapp1和javaapp2。
从javaapp1,我正在执行.bat文件(负责启动javaapp2)。

javaaap1和javaapp2彼此独立。

假设我正在使用process.exec或processbuilder进行此操作。

现在我的问题是:


在这种情况下,如果exitCode不为0,则意味着什么?是否表示执行批处理文件时出现错误
或在javaapp2的代码中?或两者?
是否可以从javaapp1中的javaapp2捕获错误?由于我不是直接调用javaapp2的类。
javaapp2错误和输出是否由javaapp1处理?

最佳答案

退出代码将是其他Java应用程序在System#exit()调用中返回的代码。如果通过bat文件执行该文件,则需要确保将其正确传递回去。
您可以让它写入stdoutstderr,然后分别由Process#getInputStream()Process#getErrorStream()提供。
如果它包含正确处理1)和2)提到的结果的代码,则为是。


相关文章:


When Runtime#exec() won't-讨论要了解的重要陷阱。

关于java - java processbuilder/rt.exec问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3471579/

10-10 14:58