溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

dll文件怎么在JavaWeb項目中實現動態加載

發布時間:2020-12-05 15:47:42 來源:億速云 閱讀:222 作者:Leah 欄目:編程語言

本篇文章為大家展示了dll文件怎么在JavaWeb項目中實現動態加載,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

第一步 建立一個監聽類

建立監聽類的作用是在應用中間件啟動時自動執行加載程序。

1)創建一個類實現ServletContextListener 接口

2)實現contextInitialized方法

3)在項目的web.xml 文件中配置此監聽類

第二步 將dll文件所在的路徑添加到系統環境java.library.path 中

添加過程需要使用到反射機制來進行,不能使用System.setProperty()進行設置,設置了也無效。直接看代碼:

private void addDirToPath(String s){
 try {
  //獲取系統path變量對象
  Field field=ClassLoader.class.getDeclaredField("sys_paths");
  //設置此變量對象可訪問 
  field.setAccessible(true);
  //獲取此變量對象的值 
  String[] path=(String[])field.get(null);
  //創建字符串數組,在原來的數組長度上增加一個,用于存放增加的目錄
  String[] tem=new String[path.length+1];
  //將原來的path變量復制到tem中 
  System.arraycopy(path,0,tem,0,path.length);
  //將增加的目錄存入新的變量數組中 
  tem[path.length]=s;
  //將增加目錄后的數組賦給path變量對象
  field.set(null,tem);
 } catch (Exception e) {
  e.printStackTrace();
 }
}

第三步 加載dll文件

接下來就可以寫上下文初始化的方法了:

public void contextInitialized(ServletContextEvent arg0) {
 //獲取存放dll文件的絕對路徑(假設將dll文件放在系統根目錄下的WEB-INF文件夾中)
 String path=arg0.getServletContext().getRealPath("WEB-INF");
 //將此目錄添加到系統環境變量中 
 addDirToPath(path);
 //加載相應的dll文件,注意要將'\'替換為'/' 
 System.load(path.replaceAll("\\\\","/")+"/XXXX.dll"); 
 }

第四步 重啟啟動應用中間件(Tomcat|Weblogic)

至此就可以在你的java程序中使用dll文件的方法了。

上述內容就是dll文件怎么在JavaWeb項目中實現動態加載,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女