説明されている両方のシステムは、LotusNotes8.5を搭載したWindowsXPです。
notes.jarを使用してLotusNotesと対話するJavaアプリ(以下のサンプルコード)があります。このアプリnotes.iniは、Lotusのインストールディレクトリにがc:\Program Files\Lotus\Notesあり、ユーザーIDファイルがにあるシステムで正常に動作しますc:\Program Files\Lotus\Notes\Data。Lotusにログインするには、ユーザーはパスワードを入力する必要があります。このシステムは(シングルユーザーシステム)にHKLM\Software\Lotus\Notes\MultiUser設定されています。0このマシンでは、以下のコードは4つprintlnの値に適切な値を表示します。
問題のあるシステムでは、このアプリは4つの見出しを出力しますが、4つの値は空白になります(ユーザー名、キーファイル名、メールファイル、およびメールサーバーはすべて空白です)。この問題のあるシステムには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.ini4つの出力値が読み取られることになっているため)。APIを調べましたがNotes.jar、の場所を指定する方法がわかりません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();
}
}