本文介紹了我可以為Java本機(jī)接口(JNI)庫設(shè)置環(huán)境變量嗎?的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有一個(gè)跨平臺的Java應(yīng)用程序,它依賴于一些本機(jī)(C++)庫來調(diào)用執(zhí)行復(fù)雜科學(xué)計(jì)算的函數(shù)。使用JNI(使用SWIG生成的粘合代碼)訪問本機(jī)庫。這些庫訪問用于配置和定位各種數(shù)據(jù)表等的幾個(gè)環(huán)境變量。
我希望我的Java應(yīng)用程序能夠設(shè)置這些環(huán)境變量,至少在JNI庫的上下文中是這樣。如果Java提供了一種在它自己的外殼/上下文中設(shè)置環(huán)境變量的方法,這會很容易,但它沒有。
similar questions的答案需要更改Java本身或子進(jìn)程的變量。這個(gè)問題是不同的,因?yàn)樗貏e涉及JNI-稱為代碼。我猜想情況是一樣的,因?yàn)镴NI代碼大概運(yùn)行在與Java應(yīng)用程序本身相同的環(huán)境中。
然而,我想我應(yīng)該問問,以防有某些JNI設(shè)置或方法可以做到這一點(diǎn)。
推薦答案
您的猜測是正確的。環(huán)境變量與流程綁定在一起。JNI和NOT-JNI之間沒有區(qū)別。
您應(yīng)該能夠使用另一個(gè)JNI庫來設(shè)置環(huán)境,以便在同一進(jìn)程中運(yùn)行的其他庫可以拾取。
這篇關(guān)于我可以為Java本機(jī)接口(JNI)庫設(shè)置環(huán)境變量嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,