在AWS EC2实例上从JAVA运行Bash命令

时间:2014-02-08 19:12:01

标签: java amazon-web-services sdk amazon-ec2

我不熟悉在Java上使用AWS SDK。我创建了一个程序来从Java创建AWS实例并检查它是否正在运行。但我无法弄清楚如何在正在运行的实例上运行bash命令。请帮忙!

try
                {
                    String lscmd = "ls";
                    Process p=Runtime.getRuntime().exec(lscmd);
                    p.waitFor();
                    BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String line=reader.readLine();
                    while(line!=null)
                    {
                        System.out.println(line);
                        line=reader.readLine();
                    }
                }
                catch(IOException e1) {
                    e1.printStackTrace();
                }
                catch(InterruptedException e2) {
                    System.out.println("Pblm found2.");
                }

但我收到一个错误说,

java.io.IOException: Cannot run program "ls": CreateProcess error=2, The system cannot     find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at ListInstances.main(ListInstances.java:79)

引起:java.io.IOException:CreateProcess error = 2,系统找不到指定的文件     at java.lang.ProcessImpl.create(Native Method)     在java.lang.ProcessImpl。(未知来源)     at java.lang.ProcessImpl.start(Unknown Source)     ......还有5个

我不确定如何连接到我创建的实例并在该实例上运行此命令。

1 个答案:

答案 0 :(得分:1)

可能是PATH没有定义,也不知道在哪里找ls?尝试使用完整路径(例如/bin/ls)进行验证。