Обе описанные системы - это Windows XP с Lotus Notes 8.5.
У меня есть приложение Java (пример кода ниже), которое использует notes.jar для взаимодействия с Lotus Notes. Приложение отлично работает в системе, в которой notes.ini находится в каталоге установки Lotus c:\Program Files\Lotus\Notes, а файл идентификатора пользователя находится в c:\Program Files\Lotus\Notes\Data. Пользователь должен ввести пароль для входа в Lotus. В этой системе HKLM\Software\Lotus\Notes\MultiUser установлено значение 0 (однопользовательская система). На этом компьютере приведенный ниже код отображает хорошие значения для четырех println.
В проблемной системе это приложение печатает четыре заголовка, но для четырех значений остаются пробелы (имя пользователя, имя файла ключа, почтовый файл и почтовый сервер остаются пустыми). Эта проблемная система имеет notes.ini, а файл идентификатора пользователя находится в D:\Data\johnsmith\NotesData. Лотус установлен в C:\Program Files\Lotus\Notes. Эта проблемная система также имеет HKLM\Software\Lotus\Notes\MultiUser, установленное на 1 (подразумевая, что она многопользовательская, а не однопользовательская). Наконец, в диалоговом окне «Файл» Lotus -> «Безопасность» -> «Безопасность пользователя» установлен флажок «Вход в Notes с использованием входа в операционную систему» (чтобы пользователь не вводил пароль для входа в Lotus).
Итак, похоже, что в проблемной системе файл notes.ini не может быть найден (поскольку notes.ini - это то место, откуда должны считываться четыре выходных значения). Я просмотрел Notes.jar API и не нашел способа указать местоположение notes.ini. Каталог, в котором находится notes.ini, находится в PATH Windows_, но это не помогает.
Любая помощь будет оценена.
import java.io.*;
import lotus.domino.*;
public static void main(String[] args) throws IOException {
try {
NotesThread.sinitThread();
Session session = NotesFactory.createSession();
System.out.println("Common user name: " + session.getCommonUserName());
System.out.println("KeyFilename: " + session.getEnvironmentString("KeyFilename", true));
System.out.println("MailFile: " + session.getEnvironmentString("MailFile", true));
System.out.println("MailServer: " + session.getEnvironmentString("MailServer", true));
} catch (Exception ex) {
ex.printStackTrace();
} finally {
NotesThread.stermThread();
}
}