我想寫一個接受一個字符串,然後可以從系統(終端)輸出的東西的java方法系統(「ls」)。當我運行我當前的程序時,它工作並輸出src/bin。但是當我添加「ls -l」時,程序終止,並且我沒有輸出。我很無知,如何解決這個問題。這是我的代碼。編寫訪問系統的方法?
public class getSystemInfo
{
public static void main(String args [])
{
system("ls -l");
}
public static void main(String args [])
{
ArrayList<String> array = new ArrayList<String>();
String s = "ls -l";
StringTokenizer tok = new StringTokenizer(s,"-,:");
while(tok.hasMoreTokens())
{
array.add(tok.nextToken());
}
try
{
Process p = new ProcessBuilder(array).redirectErrorStream(true).start();
Scanner c = new Scanner(p.getInputStream());
while(c.hasNext())
{
println(c.nextLine());
}
c.close();
} catch (IOException e) {}
不是直接回答你的問題,但沒有這樣的事情,你可以通過單行腳本語言 – Cratylus 2014-09-23 21:09:14
我知道,但其在學校的作業做學習如何使用java一個會做到這一點的方法。我知道其他編程語言有這樣的方法,但Java不 – user3242607 2014-09-23 21:11:47
你需要處理流。研究這個http://alvinalexander.com/java/java-exec-processbuilder-process-1 – Cratylus 2014-09-23 21:13:21