Я использую следующий кодЯ получаю NullPointer исключение, когда я пытаюсь поставить строку из BufferedReader в массив строк
public void getIPTableRules(){
ProcessBuilder pb = new ProcessBuilder("/sbin/iptables", "-L");
try {
Process p = pb.start();
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
int lineCount = 0;
String zeile;
while ((zeile = input.readLine()) != null) {
System.out.println(zeile);
System.out.println(lineCount);
line[lineCount] = zeile;
lineCount++;
}
input.close();
} catch (IOException ex) {
Logger.getLogger(CheckFirewall.class.getName()).log(Level.SEVERE, null, ex);
}
}
В System.out печатаются правильно. Переменная линия устанавливается в классе, как:
public String line[];
Исключение происходит в строке:
line[lineCount] = zeile;
Так может кто-то пожалуйста сказать мой, что я делаю неправильно ...
Где Аве у инициализирован ур массив строки? –
Извините, отредактировал мой первоначальный вопрос, так как понял, что я не упоминал об этом. – Margu
Ваш массив 'line', скорее всего, не инициализирован, прежде чем вы его используете. Я предполагаю, что вы его где-то объявляете, но вам нужно убедиться, что он также инициализирован. В конструкторе для класса или в другом месте, которое будет гарантировать выполнение до 'getIPTableRules()', вы должны иметь что-то вроде 'line = new String [100];', хотя вам может быть лучше, если использовать ArrayList или что-то такое дает вам переменную длину. –