for (j=0; j<=num; j++)
Это неправильно. Должно быть:
for (j = 0; j < num; j++)
Почему? Предположим, num
равно 5. До этой строки вы инициализировали even
до 5. Индексы even
будут 0, 1, 2, 3, 4.
Теперь, с j<=num
, вы пытаемся получить доступ к индексу 5, который не существует и, следовательно, является исключением.
args[j]= Integer.toString(num);
Эта строка вызовет еще одно исключение. Я предполагаю, что вы передаете только один параметр из командной строки, который является args[0]
. Это означает, что массив args
имеет размер 1, и вы не можете добавить к нему больше элементов.
Кроме того, не рекомендуется добавлять / изменять элементы в массиве args
. Вы должны создать новый массив для этого.