Java:如何检查程序是否已正确启动?

标签 java xml windows command-line command

我正在开发一个小型 Java jar 应用程序,用于使用 BaseX 服务器在 file.xml 中存储数据。 首先,在主程序启动之前,我需要正确启动并激活 Basex Server。所以这就是我所做的:

Runtime runtime = Runtime.getRuntime();

if (isWindows(os)) {
    Process server = runtime.exec("cmd /C basexserver.bat");
    System.out.println(server.waitFor());

}

else {
    if (isLinux(os)) {
        runtime.exec("basexserver");
    }
}

为了检查 BaseXServer 是否正确运行,我尝试检查 waitFor 方法返回的值,如果该值等于 0,则命令已成功执行,而如果返回值大于 0,则发生错误。问题是这个方法总是返回 1,但命令“basexserver.bat”是正确的。为什么?

最佳答案

如果进程在启动后进入后台,您可以检查 exitValue() 是否为零。其次,您可以使用 getErrorStream()getInputStream() 方法附加到错误和标准输出。并监视它们的错误消息。也看看流吞噬者模式,它可能很有用。如果某些进程的输出未被消耗,则可能会卡住。

https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html

关于Java:如何检查程序是否已正确启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169723/

相关文章:

Java SortedSet + Comparator,与equals()一致性问题

java - weblogic.application.ModuleException : Context path '' is already in use by the module:/application:

Java - 如何在网格布局中平滑地将图像从一个点移动到另一个点?

android - 使用android从php webservice url获取xml

java - Android: Image Processing Library(替代openCV)

java - 在 Servlet 中引用文件

c# - 在 ASP.NET 中从 SQL Server 读取 XML 文件

windows - 使用 powershell 删除文件中的特定行

windows - 显示 Windows 剪贴板的内容

java - Weka 没有发现主类错误