簡體   English   中英

模塊化OpenJDK11 Java映像在Linux上找不到動態庫(例如libjava.so)

[英]Modular OpenJDK11 Java image can't find dynamic libraries (e.g. libjava.so) on Linux

我已經在Windows 10上使用OpenJDK 11.0.2編譯了模塊化Java應用程序。我已經下載了Linux OpenJDK 11.0.2 jmods,並使用它們來使用jlink創建運行時映像。 我已將映像復制到CentOS 6.10 VM,並且如果嘗試啟動Java(jlink生成的映像的bin文件夾中的一個),它將失敗,提示“錯誤:找不到libjava.so”。 libjava.so文件位於運行時映像的lib文件夾中。 如果我將Java可執行文件移至/ usr / bin並將libjava.so移至/ usr / lib,它將抱怨找不到其他.so文件,因此我想這意味着它希望在以下目錄中找到lib文件夾的內容/ usr / lib目錄。 在Windows上沒有這樣的問題(即,如果我使用Windows jmod文件創建映像)。 我不願意通過創建一個安裝腳本來解決這個問題,該腳本創建十分之一的符號鏈接,但是我想不出任何其他解決方案。 我也嘗試定義一個指向[運行時圖像] / bin文件夾的$ JAVA_HOME變量,但是它仍然無法正常工作。

我做了一些測試,發現了這種不當行為的原因。 真正的問題是我使用的輸出路徑(即--output選項的值)以名為“ bin”的目錄結尾,這顯然導致Java找不到所需的動態庫,也許是因為它試圖找到它們相對於jlink生成的bin文件夾。 因此,例如“ --output bin”或“ --output dist / bin”不起作用,而例如“ --output dist”或“ --output bin / dist”起作用。

暫無
暫無

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

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