co robi ten program?
włącza się, czeka na input, zwraca za każdym razem sysouta i w zasadzie działa tylko polecenie "exit"... I chcesz to jeszcze opakować w JavaFX? :O
Czy coś przeoczyłem?
Twój kod:
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.PrintStream;
import java.io.InputStreamReader;
public class Shell{
public static void main(String args[])
{
String znak1, znak2, a;
znak1="Artur_4928_$";
znak2="Artur_4928_#";
while(true){
System.out.print(znak1);
Scanner in = new Scanner(System.in);
a = in.nextLine();
String[] cmdsplit = a.split(" ");
PrintStream prtStrm = System.out;
String s = null;
try {
Runtime r=Runtime.getRuntime();
Process p=null;
p=r.exec(cmdsplit);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
} catch (Exception e){
if (a.isEmpty())
continue;
if (a.matches("^\\s*$")){
continue;
}
if ((cmdsplit[0].equals("exit"))&&(cmdsplit.length==1))
{
System.out.println("Do zobaczenia");
System.exit(0);
}
System.out.println("Błędne polecenie: "+a);
//System.out.println("Błędne polecenie: "+a);
//System.out.println("Błędne polecenie: "+s);
//for (int i = 0; i>cmdsplit[0].length; i++{
// }
//System.out.println("Błędne polecenie: "+cmdsplit[0]);
}
//System.out.println("Program "+cmdsplit[0]+" zwrócił wartosć "+p.exitValue());
}
}
}
Kyrie eleison, zamiast łez, z oczu płynie krew ;_;
Może zamiast zabierać się za JavaFX poczytaj o obsłudze wyjątków, bo ten fragment nic nie robi:
try {
Runtime r=Runtime.getRuntime();
Process p=null;
p=r.exec(cmdsplit);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
} catch (Exception e){
if (a.isEmpty())
continue;
if (a.matches("^\\s*$")){
continue;
}
Przypisujesz do r wartość która nigdzie w kodzie nie jest wykorzystywana? To po co ten kod? (edit: no dobra jest, ale i tak bez sensu)
Następne dwie linie kodu można zapisać w jednej, który i tak nie zadziała, bo robisz "splita" na tablicy Stringów... Dodatkowo używasz Scanner, PrintStream i BufferedReader, które są trzema odrębnymi klasami i nie przekazujesz wartości między nimi...
Proszę adminów o przeniesienie tego wątku do Newbie.