java - PocessBuilder 执行 glassfish 命令

标签 java linux cmd terminal glassfish

我尝试获取集群的实例列表,因为我使用 ProcessBuilder 来执行命令:

asadmin list-instances --long=true

当我在 windows 中从 java 执行此命令时,它工作正常,但是当我在 Linux 中的真实服务器中部署应用程序时,出现异常:

Exception = java.io.IOException: Cannot run program "/bin/sh -c 'asadmin list-instances --long=true'": error=2, Aucun fichier ou dossier de ce type

当我直接在服务器中执行此命令时,它工作正常吗? 我真的不明白问题出在哪里

这是我的 Java 代码:

public String executerCommande() {
    String line, line2 = "";
    try {
        //Windows command
        //ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", command);
        //I use this with quots and without quotes
        //ProcessBuilder builder = new ProcessBuilder("/bin/sh -c asadmin list-instances --long=true");
        ProcessBuilder builder = new ProcessBuilder("/bin/sh -c 'asadmin list-instances --long=true'");
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        while (true) {
            line = r.readLine();
            if (line == null) {
                break;
            }
            line2 += r.readLine() + "\n";
        }
    } catch (Exception e) {
        System.out.println("Exception = " + e);
    }
    return line2;
}

enter image description here

谢谢。

最佳答案

使用运行时可能会有所帮助

    try {
         String command = "asadmin list-instances --long=true";
         Process p = Runtime.getRuntime().exec(command);
         BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
         for (String s = br.readLine(); s != null; s = br.readLine()) {
                System.out.println("line: " + s);
         }
         br.close();
         p.waitFor();
         System.out.println("command executed exited: " + p.exitValue());
         p.destroy();
    } catch (Exception e) {
        System.out.println("Exception" + e);
    }

关于java - PocessBuilder 执行 glassfish 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38822649/

相关文章:

java - WebElement 中的 sendKeys (java.lang.CharSequence...) 无法应用于 (org.openqa.selenium.Keys)

java - 寻找基于 Java 的 SCSS 到 CSS 转换器

linux - Talend 警告和错误消息是黑色的

batch-file - 如何清除批处理中的选定行而不是整个屏幕?

windows - 长命令在 Windows 中用引号分割成多行

java - Spring Data JPA - 数据库问题连接不可用,请求在 30000 毫秒后超时

java - CraftingManager 错误

linux - 为什么找不到nodejs?

c++ - GLIBC_2.18 未找到,但在本地构建中

windows - 用于创建计划任务的 VBScript