首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lotus Notes Java应用程序找不到notes.ini

Lotus Notes Java应用程序找不到notes.ini
EN

Stack Overflow用户
提问于 2010-07-16 05:03:19
回答 3查看 4.7K关注 0票数 2

所描述的两个系统都是装有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中,但这并没有什么帮助。

任何帮助都将不胜感激。

代码语言:javascript
复制
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();
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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文件名。

票数 2
EN

Stack Overflow用户

发布于 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=行,并将其用作所有错误报告和日志记录,作为用户的私有数据目录。

票数 2
EN

Stack Overflow用户

发布于 2010-07-16 10:28:24

您可以尝试以下几种方法:

Notes实际上自带了自己的JVM,我发现使用这个JVM使得应用程序可以更可靠地运行

  1. 类,因为任何最终需要的支持库都会被正确地使用,如果notes在你启动程序之前就已经在运行了,就会发生configured.
  2. What。这里有两个变化:复选框“不提示输入来自其他基于笔记的程序的密码”被选中,或者在运行应用程序之前,unchecked.
  3. Make确保切换到Notes.ini在家中的目录。(并验证用户不能看到任何其他notes.ini变量)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3260069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档