2015-11-03 112 views
0

我正在使用適用於IBM Notes/Domino的Java API構建一些應用程序,該應用程序使用本地IBM Notes客戶機和Notes.jar,這些應用程序可在Linux(Ubuntu的情況下)下工作。通常notes.ini文件可以在/home/user/ibm/notes/data/notes.ini找到,但我想使用不同的配置。如何在我的應用程序/ Notes客戶端中設置notes.ini應該使用哪個?我可以在哪裏設置notes.ini位置?

+0

不應該關閉。問題在於Notes編程,而不是Lotus Notes的現成行爲。 –

+1

Richard的答案是正確的,但我會避免用不同的notes.ini來擺弄,特別是如果你要分發應用程序。但是,如果它只在一臺機器上運行,那麼請填滿你的靴子。 @RichardSchwartz沒有不敬! –

+0

是的,必須有充分的理由。在添加位置文件之前(R5 ??),我們過去常常這麼做,而且這絕對是一個雷區。 (沒有不尊重。) –

回答

1

可以指示Notes API使用備用notes.ini文件。 C API的NotesInit()調用從命令行獲取傳統的argc和argv參數,並查找等號並跟隨notes.ini的路徑。

由於Notes客戶端實際上是使用Notes API編寫的,所以它實際上使用相同的技術。即,

C:\> C:\IBM\Notes\notes.exe "=D:\Lotus Notes\Data\notes.ini" 

這也適用於使用Java和其他語言API編寫的程序。在它們下面都有C API調用,所以當這些API調用NotesInit()時,它們會從運行時環境傳入命令行參數。所以你所要做的就是用一個命令行參數運行你的程序,在一個等號後指定notes.ini的位置。

請注意:在路徑中出現空格時,上面語法中的引號很重要。

+0

我的應用程序如何讀取這個參數?我是否應該在代碼中提出這樣的建議:http://stackoverflow.com/a/17634821/1333931但是,當我使用它時,它會嘗試遠程打開(由於Domino服務器配置,這不起作用)。有沒有其他方法?我也嘗試用其他的原始文件替換(它在這種情況下起作用),但它似乎是臨時解決方案。 – wbk

+0

我認爲你只需要這樣做,如果你使用NCSO.jar。我認爲,如果你使用的是notes.jar,那麼當notes.jar加載本地的nlsxbe.dll文件時,它將從JVM的運行時系統獲得命令行並自動將它傳入。我不是100%確定的,雖然。只要試試看。 –

相關問題