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