ini4j чтение значений реестра вызывает сбой Java
У меня есть несколько методов, которые я написал здесь, которые читают некоторые значения из реестра и заполняют некоторые текстовые поля в моем Swing GUI.
Вот первый метод:
public void loadRegValues() throws IOException {
Scripts sc = new Scripts();
//SET CONFIGURATION TAB TO COME FORWARD
setTabFolderSelection(1);
//SET PREBACKUP AS FIRST SELECTED TAB
setConfigTabFolderSelection(0);
// [GLOBAL]
setClientnameText(sc.readValueFromReg("[GLOBAL]", "clientname"));
// [PREBACKUP]
Boolean prebackupboolean = Boolean.valueOf(sc.readValueFromReg("[PREBACKUP]", "prebackup-enabled"));
setPrebackupenabledSelection(prebackupboolean);
// [OPENVPN]
setOvpnprofileText(sc.readValueFromReg("[OPENVPN]", "ovpnprofilename"));
setOpenvpngatewayipText(sc.readValueFromReg("[OPENVPN]", "remotegatewayip"));
// [NETWORK DRIVE]
setNetworkdriveletterText(sc.readValueFromReg("[NETWORK DRIVE]", "drive-letter"));
setIpofshareText(sc.readValueFromReg("[NETWORK DRIVE]", "ipofshare"));
setSharenameText(sc.readValueFromReg("[NETWORK DRIVE]", "sharename"));
setShareusernameText(sc.readValueFromReg("[NETWORK DRIVE]", "shareusername"));
setSharepasswordText(sc.readValueFromReg("[NETWORK DRIVE]", "sharepassword"));
// [REGISTRY BACKUP]
Boolean registrybackupboolean = Boolean.valueOf(sc.readValueFromReg("[REGISTRY BACKUP]", "registrybackup-enabled"));
setRegistrybackupenabledSelection(registrybackupboolean);
Boolean reghklmsoftwareboolean = Boolean.valueOf(sc.readValueFromReg("[REGISTRY BACKUP]", "hklm-software-enabled"));
setHklmsoftwareenabledSelection(reghklmsoftwareboolean);
Boolean regbackupcustompathboolean = Boolean.valueOf(sc.readValueFromReg("[REGISTRY BACKUP]", "reg-custompath-enabled"));
setRegistrycustompathenabledSelection(regbackupcustompathboolean);
setRegistrycustompathText(sc.readValueFromReg("[REGISTRY BACKUP]", "reg-custom-path"));
// [FREEFILESYNC]
setFfsbatchfilenameText(sc.readValueFromReg("[FREEFILESYNC]", "ffsbatchfile"));
// [EMAIL]
Boolean emailboolean = Boolean.valueOf(sc.readValueFromReg("[EMAIL]", "emailenabled"));
setEmailenabledSelection(emailboolean);
setGmailusernameText(sc.readValueFromReg("[EMAIL]", "gmailusername"));
setGmailpasswordText(sc.readValueFromReg("[EMAIL]", "gmailpassword"));
setClientemailText(sc.readValueFromReg("[EMAIL]", "clientemail"));
}
а вот и второй (это в классе "Скрипты"):
public String readValueFromReg(String valuecategory, String keyname) throws IOException
{
Reg reg = new Reg("HKEY_LOCAL_MACHINE\\SOFTWARE\\KCBS\\Offsite Backup\\");
Reg.Key cp = reg.get("HKEY_LOCAL_MACHINE\\SOFTWARE\\KCBS\\Offsite Backup\\");
Reg.Key valuecat = cp.getChild(valuecategory);
String keyvalue = valuecat.get(keyname);
return keyvalue;
}
Всякий раз, когда я бегу loadRegValues()
это вылетает из моего приложения. Я использую API ini4j для чтения и записи из реестра; Я не могу понять, почему это вызвало бы его крах.
РЕДАКТИРОВАТЬ: После дальнейших исследований может показаться, что метод извлечения данных из реестра с использованием учебника, который разработчик предоставил на этой странице http://ini4j.sourceforge.net/tutorial/WindowsRegistryTutorial.java.html, не работает. Функция записи работает нормально, однако часть чтения не работает даже при использовании предоставленного им примера. Я свяжусь с разработчиком и постараюсь получить там помощь.