LINUX.ORG.RU

Lokal'no mozcno sdelat' (esli ti govorish o Command Line). Ili ja chego ne ponjal :(.

anonymous
()

pravilno ponyal eto dolzno bit' tipa system('pine'); ili ...

anonymous
()

import java.io.*;
import java.util.*;

public class Finger  
{
 public static void main(String args[]) throws Exception 
 {
    String command = "finger";

    Runtime runtime = Runtime.getRuntime();
    Process process = null;
    try {
      process = runtime.exec(command);
      DataInputStream in = new DataInputStream(process.getInputStream());

      String str = null;
      while ((str = in.readLine()) != null) {
        System.out.println(str);
      }
    }
    catch (Exception e) { 
     System.out.println("Error: " + e.getMessage());
    }
  }
}

Правда метод readLine depricated

RSI
()

Zdes' block zapuska #ps -ef | grep foo (s pipe u menja ne poluchilos' zapustit' cmdl)

try{

String nextLine;

// Try exec. shell command (for UNIX clone) "ps -ef"

Process childProc = Runtime.getRuntime().exec("ps -ef");

// Whait for process

childProc.waitFor();

// Get output and put it to buffer

BufferedReader distream = new BufferedReader(new InputStreamReader(childProc.getInputStream()));

// Pars. buffer and try find "vserver"

while((nextLine = distream.readLine()) != null )

{

// If "foo" store the line

if(nextLine.lastIndexOf("foo") != -1)

{

sProcess = nextLine;

}

}

// Kiil the process

childProc.destroy();

childProc = null;

}

catch (IOException e)

{

// Get error on exec.

errorMessage = e.getMessage();

}

catch (InterruptedException i)

{

// Get error on whaite

errorMessage = i.getMessage();

}

anonymous
()

Дело в том, что пайпы и перенаправления ввода/вывода обрабатывает шелл.
Вызовы system и popen вызывают шелл, а шелл уже запускает программу.
Попробуй сделать так:
Process childProc = Runtime.getRuntime().exec("/bin/sh -c \"ps -ef | grep foo\"");

Havoc ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.