Первое, что он делает после поиска «Справки», пытается разобрать его как число:
g = Integer.parseInt(args[0]);
То, что вы можете попытаться сделать, это перехватить это исключение, изменив эту строку на:
try {
g = Integer.parseInt(args[0]);
} catch(NumberFormatException e) {
System.out.println("The first parameter was supposed to be a number!");
System.exit(1);
}
Если вы намеревались принять такие параметры, как "foo 1", то вы должны анализировать args [1] как число, а args [0] вы должны проверить, чтобы увидеть, является ли это "foo" следующим образом:
if(args[0].equalsIgnoreCase("foo")) {
// now we know foo is the first arg. Parse args[1]!
...
}
О, кстати. «Случайными» числами в большинстве языков являются числа от 0 до 1. Они обычно выглядят как «.108937190823 ...»
Если вы хотите проверить число вроде 1-10, вам нужно сделать что-то вроде этого:
Random().nextInt(10) + 1; // (Thanks @mmyers)
(Не совсем уверен, что это правильный способ сделать это, но он близок.