簡體   English   中英

在eclipse中使用額外的本機代碼庫導出到Runnable jar

[英]Exporting to Runnable jar with extra native code libraries in eclipse

我無法將我的java項目從eclipse導出為jar可執行文件。 我的java項目使用外部庫(稱為jri)。 我已經導出了jri.jar文件並在eclipse中為其本機庫設置了庫路徑,並且它在eclipse中的開發中運行良好。 但是,當我將其導出為可執行jar文件時,我收到以下錯誤:

Cannot find JRI native library!
Please make sure that the JRI native library is in a directory listed in java.library.path.

我把一個名為lib的文件夾放在與我的項目jar相同的目錄中; 這個lib文件夾包含jri的本機庫。 jri的本機庫不在一個文件中,而是在一個文件夾中。 這與我在eclipse中的設置相同。

我在eclipse中導出項目的方式是

Export...
Java > Runnable JAR file
Copy required libraries into a sub folder next to the generated Jar
Finish

我的文件夾是這樣組織的

folder project
  project.jar
  project_lib
    jri.jar
    jri native library folder  

我的project.jar的MANIFEST.MF是:

Manifest-Version: 1.0
Class-Path: . project_lib/jri.jar
Main-Class: index

我想要實現的是給另一個人一個文件夾,包括project.jar和其他所需的東西,這樣她/他就可以運行它而無需安裝任何其他東西。 非常感謝

添加包含以下內容的腳本:

#!/bin/bash
java -Djava.library.path=project_lib/native/ -jar project_lib/jri.jar

我以這種方式導出一些java項目。

這相對難以實施。 我見過的解決方案涉及將JAR中的本機庫解壓縮到OS臨時目錄,然后加載它。 我會為此尋求綜合解決方案。 一個JarJava類加載器支持它,在第二個頁面上,您將找到類似工具的鏈接。

您可以將庫放在 jar中:

出口...

Java> Runnable JAR文件

將所需的庫打包到生成的Jar中

我總是以這種方式出口。 我不知道它是否適用於您的情況,但值得一試。


編輯:

看到這些鏈接:

我的猜測是,這與LD_LIBRARY_PATH沒有正確設置有關。 或者它正在搜索的文件不在列出的路徑中。

你知道我有類似的問題

Could not extract native JNI library.

以上所有建議都無法幫助我。 我無法停止並使用follow命令啟動gradle deamon:

gradle --stop

我看到gradle deamon仍未在我的進程中停止。 這就是為什么我在我的過程中殺了它,一切都會好的:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM