Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Если Вы создаете это приложение для более крупных компаний, то необходимо взглянуть на Групповую политику. К сожалению, это возвратит Ваше приложение Золотому Веку реестра. Я понимаю, что это было бы огромным изменением в Вашей программе, но это - путь к этому.
Однако, если URL веб-сервиса является единственной вещью, необходимо установить этот путь, затем GPO мог бы быть излишеством. В этом случае я был бы hardcode имя исполняемого файла.
Если это приемлемо для Вас для hardcode по крайней мере одна установка в файле конфигурации, можно использовать это для указания на базу данных или веб-сервис или путь сетевого файла, где все пользовательские настройки конфигурации могут быть сохранены. Использование Системы. Конфигурация. ConfigurationManager. OpenExeConfiguration () можно затем обновить файл конфигурации от этого местоположения или на первом показе или каждый раз, когда приложение запускает.
Я знаю, что это не точно ответ, который Вы ищете, но необходимо выбрать более "серьезный" установщик. Мы используем Усовершенствованный Установщик, и это - уничтожение, делает что-либо и все, о чем можно думать.