dll在linux
1. linux操作系統下可以用jacob嗎,那個jacob.dll怎麼處理
不可以,jacob 是在 win32 下用 java 來操作 COM 組件的,在 Linux 下 COM 不可用。
2. JAVA中用JNI調用了在WIN32下編譯的DLL,如果在LINUX下執行這個JAVA程序,是否還可以繼續調用的DLL。
直接是不行的! linux裡面沒有dll。
不過看你的需求應該是java調用了其他程序別寫的功能,在linux裡面肯定可以!Linux也有動態鏈接庫的概念,不過叫Share Object ,你編譯一個.so的文件,然後還是使用JNI調用。
參考:
編譯so:http://www.cnblogs.com/ardar/articles/357321.html
java調用:http://..com/question/488673981.html
3. windows vs 編譯的動態庫 能不能在linux 下調用
這個理論上是可以實現的。但是很復雜,通用性不強。
1、windows上的動態庫DLL文件是PE格式,而linux上的可執行文件是ELF格式,這兩種格式首先不同。
2、但是,你可以在Linux上模擬實現一個PE載入器,然後載入DLL文件,實際上就是在Linux上實現一個PE Loader。 但是,這是一個相當復雜的事情,因為,微軟沒有公布PE的完全細節,我們現在所有了解的PE結構,那都是非官方公布的!
綜上所述,不建議這樣操作,但是理論上能實現。
4. linux中.so後綴的文件怎麼使用
在WINDOWS系統中有很多的動態鏈接庫(以.DLL為後綴的文件,DLL即Dynamic Link Library)。這種動態鏈接庫,和靜態函數庫不同,它裡面的函數並不是執行程序本身的一部分,而是根據執行程序需要按需裝入,同時其執行代碼可在多個 執行程序間共享,節省了空間,提高了效率,具備很高的靈活性。同樣,LINUX的也具備類似的動態鏈接庫,而且為數不少。在/lib目錄下,就有許多以.so作後綴的文件,這就是LINUX系統應用的動態鏈接庫,只不過與WINDOWS叫法不同,它叫so,即Shared Object,共享對象。(在LINUX下,靜態函數庫是以.a作後綴的) X-WINDOW作為LINUX下的標准圖形窗口界面,它本身就採用了很多的動態鏈接庫(在/usr/X11R6/lib目錄下),以方便程序間的共享, 節省佔用空間。flash只是一個插件,在windows中就是一個ocx的鏈接庫方式(和dll略有不同),因此linux中一旦你了一個共享函數庫,你還需要安裝它。其實簡單的方法就是拷貝
你的庫文件到指定的標準的目錄(例如/usr/lib),然後運行ldconfig。
如果你沒有許可權去做這件事情,例如你不能修改/usr/lib目錄,那麼
你就只好通過修改你的環境變數來實現這些函數庫的使用了。首先,
你需要創建這些共享函數庫;然後,設置一些必須得符號鏈接,特別
是從soname到真正的函數庫文件的符號鏈接,簡單的方法就是運行ldconfig:
ldconfig -n directory_with_shared_libraries
然後你就可以設置你的LD_LIBRARY_PATH這個環境變數,它是一個以逗號
分隔的路徑的集合,這個可以用來指明共享函數庫的搜索路徑。例如
,使用bash,就可以這樣來
啟動一個程序my_program:
LD_LIBRARY_PATH=.LD_LIBRARY_PATH my_program