所描述的两个系统都是装有Lotus Notes 8.5的Windows XP。
我有一个使用notes.jar与Lotus Notes交互的Java应用程序(示例代码如下)。这个应用程序在c:\Program Files\Lotus\Notes的Lotus install dir中有notes.ini并且用户ID文件在c:\Program Files\Lotus\Notes\Data中的系统上工作得很好。用户必须键入密码才能登录到Lotus。此系统的HKLM\Software\Lotus\Notes\MultiUser设置为0 (单用户系统)。在这台机器上,下面的代码在四个println上显示了良好的值。
在有问题的系统上,此应用程序打印四个标题,但打印四个值的空格(用户名、密钥文件名、邮件文件和邮件服务器都是空的)。这个有问题的系统在D:\Data\johnsmith\NotesData中有notes.ini和用户ID文件。莲花安装在C:\Program Files\Lotus\Notes中。这个有问题的系统还将HKLM\Software\Lotus\Notes\MultiUser设置为1 (这意味着它是多用户而不是单用户)。最后,在Lotus的File -> User Security对话框中,选中了"Log in to -> using your operating system login“框(这样用户就不需要输入密码来登录到Lotus)。
因此,在有问题的系统上,似乎找不到notes.ini文件(因为应该从notes.ini中读取四个输出值)。我已经查看了Notes.jar应用程序接口,但找不到任何方法来指定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();
}
}发布于 2010-08-18 00:18:30
正如在最初的问题中所提到的,如果HKEY_LOCAL_MACHINE\Software\Lotus\Notes\MultiUser的值为1,那么您就拥有了一个多用户安装(即使您是Lotus的唯一用户)。
这里有一个有效的解决方案。找到Notes.ini的位置,可能是像C:\Documents and Settings\(username)\Lotus这样的地方。编辑或创建下面的字符串值,并将其设置为Notes.ini目录。HKEY_CURRENT_USER\Software\Lotus\Notes\(optional-version)\NotesIniPath。
在多用户环境中,Lotus Notes从NotesIniPath注册表值获取ini文件名。
发布于 2013-07-14 06:38:31
添加一个新的命令行参数"=c:\data\johnsmith\NotesData\notes.ini“。要实现这一点,您需要在设置一个包含该参数的新字符串数组以及传递的任何其他参数后,使用NotesFactory.CreateSession(String host,String args[],String user,String passwd);方法,因为它基本上被认为是传递给静态Main的字符串args[]。( =fullpath\notes.ini参数只需要在数组中,而不需要在任何特定位置。)
这允许使用到所使用的notes.ini文件的绝对路径来初始化会话,并且似乎从Notes5.0.5(尽管我可能是错的)开始支持它。
值得注意的是,将从该notes.ini获取Directory=行,并将其用作所有错误报告和日志记录,作为用户的私有数据目录。
发布于 2010-07-16 10:28:24
您可以尝试以下几种方法:
Notes实际上自带了自己的JVM,我发现使用这个JVM使得应用程序可以更可靠地运行
Notes.ini在家中的目录。(并验证用户不能看到任何其他notes.ini变量)https://stackoverflow.com/questions/3260069
复制相似问题