所描述的两个系统都是带有 Lotus Notes 8.5 的 Windows XP。
我有一个使用 notes.jar 与 Lotus Notes 交互的 Java 应用程序(下面的示例代码)。该应用程序在具有notes.ini
Lotus 安装目录c:\Program Files\Lotus\Notes
且用户 ID 文件位于c:\Program Files\Lotus\Notes\Data
. 用户必须输入密码才能登录 Lotus。此系统已HKLM\Software\Lotus\Notes\MultiUser
设置为0
(单用户系统)。在这台机器上,下面的代码在四个println
's 上显示了很好的值。
在有问题的系统上,此应用程序打印四个标题,但四个值的空白(用户名、密钥文件名、邮件文件和邮件服务器都是空白的)。这个问题系统有notes.ini
和用户ID文件在D:\Data\johnsmith\NotesData
. Lotus 安装在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
位于 WindowsPATH
中,但这无济于事。
任何帮助,将不胜感激。
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();
}
}