Java Kommandozeilen Parameter?
Ich habe ein kleines Java Programm geschrieben und es ist ein Problem aufgetreten. Ich habe einen Rechner programmiert, dieser kann eigentlich +, -, mal und geteilt. Wenn ich jetzt in meine Kommandozeile +, - oder / geteilt eingebe, dann wird die Rechenoperator perfekt ausgeführt, bei * klappt es aber nicht. Ich hab das ganze über eine switch funktion gemacht und dort als Initialfall für die Multiplikation das Zeichen * verwendet, ändere ich das zum Beispiel zu l und gebe dann als Kommandozeilenparamter l ein, dann klappt die Multiplikation perfekt. Weiß jemand, wieso das so sein könnte bzw. hat eine Idee wie man das Problem lösen kann
1 Antwort
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
Das hat mit Java nichts zu tun, sondern mit deiner Shell. Gewisse Zeichen haben dabei eine Bedeutung als Wildcards - so auch das Sternchen.
Eine Möglichkeit ist, diese Zeichen in Anführungszeichen zu stellen.
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Vermutlich machst du doch noch etwas falsch. Hier ein kleines Beispiel, welches so auch klappt:
class Main {
public static void main(String[] args) {
if (args.length < 3) {
return;
}
switch (args[1]) {
case "*":
int numberOne = Integer.parseInt(args[0]);
int numberTwo = Integer.parseInt(args[2]);
int result = numberOne * numberTwo;
System.out.println(result);
break;
default:
System.out.println("No valid operator");
}
}
}
Aufruf (nach Kompilation):
java Main 2 "*" 4
Okay das ist natürlich eine gute Lösung, danke!
Mit Anführungszeichen geht es auch nicht, hast du noch eine Idee mit welchen Zeichen man das noch machen könnte?
Beruhigt mich schon mal,dass das nichts mit dem geschriebenen Programm zu tun haben sollte, das wäre auch super komisch und unsinnvoll gewesen, da ich ja nichts anders gemacht habe, als bei den anderen Rechenoperationen