我有一个名为 的 Java 文件app.java
,它提取我的应用程序中的服务器。
我需要连接到该列表中的每个服务器并提取日志。在循环中,我必须调用脚本来连接到每台机器。是否可以从java文件调用shell脚本?有什么建议请。
我在这里添加示例:
for (int m = 0; m < AppDetailsN.length(); ++m)
{
JSONObject AppUsernIP=AppDetailsN.getJSONObject(m));
Iterator keys = AppUsernIP.keys();
while(keys.hasNext()) {
String key = (String)keys.next();
System.out.println("key:"+key);
String value = (String)AppUsernIP.get(key);
System.out.println("value "+value);
if(key == "user")
// Store value to user variable
// [..]
if (key == "ip")
//store value to IP variable
// [..]
}
//Here I want to call the script with that username and IP and password
}
答案1
你可以使用Runtime.exec()
.这是一个非常简单的例子:
import java.io.*;
import java.util.*;
class Foo {
public static void main(String[] args) throws Exception {
// Run command and wait till it's done
Process p = Runtime.getRuntime().exec("ping -n 3 www.google.de");
p.waitFor();
// Grab output and print to display
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
}