Unrue
06-12-2006, 15:16
Salve, ho bisogno di eseguire da un programma Java un comando da console. Ad esempio quello che fa venire la versione della jdk ovvero java -version. A tal proposito ho scritto:
package comandi;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
public class Comandi {
/**
* @param args
*/
public static void main(String[] args) {
Process cmd;
String[] a= {"/bin/sh","java","-version"};
try{
cmd = Runtime.getRuntime().exec(a);
PrintStream cmdin = new PrintStream(new BufferedOutputStream(
cmd.getOutputStream()));
System.out.println(cmd.toString());
DataInputStream cmdout = new DataInputStream(new BufferedInputStream(
cmd.getInputStream()));
}
catch (IOException e)
{
}
}
}
Ma come output ottengo:
java.lang.UNIXProcess@10b62c9
Cosa vuol dire? Probabilmente sbaglio a passare i comandi in quel modo. In realtà il mio comando deve poi richiamare un programma, ma adesso per imparare gli sto mandando comandi di shell semplici. Grazie.
package comandi;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintStream;
public class Comandi {
/**
* @param args
*/
public static void main(String[] args) {
Process cmd;
String[] a= {"/bin/sh","java","-version"};
try{
cmd = Runtime.getRuntime().exec(a);
PrintStream cmdin = new PrintStream(new BufferedOutputStream(
cmd.getOutputStream()));
System.out.println(cmd.toString());
DataInputStream cmdout = new DataInputStream(new BufferedInputStream(
cmd.getInputStream()));
}
catch (IOException e)
{
}
}
}
Ma come output ottengo:
java.lang.UNIXProcess@10b62c9
Cosa vuol dire? Probabilmente sbaglio a passare i comandi in quel modo. In realtà il mio comando deve poi richiamare un programma, ma adesso per imparare gli sto mandando comandi di shell semplici. Grazie.