展开全部
1. 使用Process类操作
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.SequenceInputStream;
public class Processing
{
public static void main ( String[] args ) throws InterruptedException
{
32313133353236313431303231363533e4b893e5b19e31333337396233try
{
// open cmd
// Process process = Runtime.getRuntime ().exec (new String[] {
// "cmd", "/c", "dir" }, null, new File ("e:/"));
Process process = Runtime.getRuntime ().exec ("cmd");
SequenceInputStream sis = new SequenceInputStream (process.getInputStream (), process.getErrorStream ());
InputStreamReader isr = new InputStreamReader (sis, "GBK");
BufferedReader br = new BufferedReader (isr);
// next command
OutputStreamWriter osw = new OutputStreamWriter (process.getOutputStream ());
BufferedWriter bw = new BufferedWriter (osw);
bw.write ("cd C:/WINDOWS/audio/");
bw.newLine ();
bw.write ("c:");
bw.newLine ();
bw.write ("ffmpeg -i keyboard.wav keyboard.mp3");
bw.newLine ();
bw.flush ();
bw.close ();
osw.close ();
// read
String line = null;
while (null != ( line = br.readLine () ))
{
System.out.println (line);
}
// wait for termination
/*process.waitFor ();
process.exitValue ();*/
process.destroy ();
br.close ();
isr.close ();
}
catch (IOException e)
{
e.printStackTrace ();
}
// catch (InterruptedException e)
// {
// e.printStackTrace ();
// }
}
}
2. 使用ProcessBuilder类操作。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
public class TestProcessBuilder
{
public static void main ( String[] args ) throws Exception
{
ProcessBuilder builder = new ProcessBuilder ("cmd", "/c", "ipconfig /all");
//builder.directory (new File ("C:\\WINDOWS\\audio"));
Process process = builder.start ();
InputStream is = process.getInputStream ();
InputStreamReader isr = new InputStreamReader (is, "GBK");
BufferedReader br = new BufferedReader (isr);
LinkedList list = new LinkedList ();
String line;
String regex = ".*Ethernet adapter(.*)\\:.*";
while (null != ( line = br.readLine () ))
{
if (!"".equals (line))
{
if (line.matches (regex))
{
list.add (line.replaceAll (regex, "$1"));
}
System.out.println (line);
}
}
br.close ();
isr.close ();
is.close ();
process.destroy ();
System.out.println (list);
}
}
3. 使用Runtime操作。