Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nsf文件的Java Lotus Notes API/VBA路径_Java_Vba_Lotus Notes_Lotus Domino - Fatal编程技术网

nsf文件的Java Lotus Notes API/VBA路径

nsf文件的Java Lotus Notes API/VBA路径,java,vba,lotus-notes,lotus-domino,Java,Vba,Lotus Notes,Lotus Domino,我正在开发一个Java程序,通过LotusNotes客户端发送带有附件的电子邮件。一位同事给了我一个vba脚本,该脚本能够完成这项任务,以确定我自己的方向。脚本如下: Set Session = CreateObject("Notes.NotesSession") UserName = Session.UserName MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName

我正在开发一个Java程序,通过LotusNotes客户端发送带有附件的电子邮件。一位同事给了我一个vba脚本,该脚本能够完成这项任务,以确定我自己的方向。脚本如下:

Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GetDatabase("", MailDbName)
像魔术一样,这成功地打开了本地notes数据库文件,我能够发送电子邮件。现在我尝试用Lotus Notes API Notes.jar在Java中复制这一点:

Session s = NotesFactory.createSession();
Database database = s.getDatabase("", "PATH TO NSF FILE");
如果我给getDatabase方法指定nsf文件的确切路径,它会像一个符咒一样工作,但是给它与vba脚本中的MailDbName相同的值,它就不起作用了。我的问题是,这在vba中如何工作,而在Java中如何工作?给getDatabase方法提供精确路径在除我自己的设备之外的任何其他设备上都不起作用。那么我如何让它在任何设备上工作呢


非常感谢

如果您有本地邮件文件副本,它通常位于Notes/Data目录中,该目录被视为Notes的根目录。 这就是为什么它会在第一个示例中打开。 在第二个示例中,您试图打开的数据库似乎位于Notes/Data目录下的文件夹中,这可能就是它无法工作的原因


通常,当您想要打开邮件数据库时,如果您使用Java,则使用DbDirectory类的openMailDatabase方法,如果您使用Lotusscript中NotesDatabase类的OpenMail方法。

请显示不起作用的确切代码。别让我们猜。也就是说,向我们展示您是如何从vba脚本中为其提供相同的MailDbName值的。另外,请告诉我们:VBA脚本在哪台机器上运行,以及如何运行;Java代码在哪台机器上运行?它是如何运行的?谢谢先生!使用带有空字符串的会话getDbDirectory和openMailDatabase作为参数,效果非常好: