java.lang.UnsatisfiedLinkError在web工程下的解決辦法__java.lang.Unsatisfie

來源:互聯網
上載者:User

   最近在做關於jni的項目,遇到一個很奇怪的問題,一直提示java.lang.UnsatisfiedLinkError錯誤。在網上只找到了部分解決辦法,後來自己稀裡糊塗的搞定了。現按照我的方法解釋如下:


解決方案:首先將產生的動態連結程式庫放在src下,右擊項目名稱選擇Build Path --> Configure Build Path, 在source目錄下更改Native library location的值為.dll檔案所在的檔案夾位置。


狀況2:之前寫那些java代碼是在notepad下寫的,沒有建包。後來利用eclipse操作時發現只能將java代碼放在預設包下才能運行成功。但是又出來一個新的問題:自從jdk1.4後,所有的類不能調用預設包下面的類,麻煩大了。我必須將這些java代碼放在一個包裡,運行,再次提示java.lang.UnsatisfiedLinkError錯誤。後來想明白了,按照jni步驟重新 “產生 .h 檔案然後 .dll 庫......”,因為原有的java檔案加了一句“package com.jni;” 。重來後運行正常。


狀況3:在eclipse下寫測試代碼運行正常,後來還加了一個適配器,改了一下介面,一切正常。可是當我將測試代碼改為servlet後,也就是講java工程改成web工程,再次提示java.lang.UnsatisfiedLinkError錯誤,這個在網上一直沒找到解決辦法。還好,明白這是因為庫檔案的串連位置有錯誤。於是我用everything搜尋這個 xxx.DLL 檔案,發現在webapp下的工程下面也有一個 .DLL 檔案,可是Build Path只能編輯一個庫位置。後來沒著了,我就將這個 .DLL 檔案複製了一份到 system32檔案夾下,結果發現,奇蹟般好了。至於為什麼,我只能懷疑是因為tomcat也需要這個連結庫吧。


   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.