static HashMap<String, String> map2 = new HashMap<String, String> ();
совершенно правильно, если у вас есть этот код на уровне класса, а не в методе.
Где у вас это?
После обновления:
У вас есть переменная, объявленная на уровне метода, статические переменные недопустимы на уровне метода.
static
переменные класс переменные. Один в классе. Поэтому не имеет смысла иметь переменные, которые видны только внутри метода, который будет die после того, как метод будет завершен, чтобы быть «уровнем класса». По крайней мере, вот как это видит Java.