簡體   English   中英

GraalVM native-image 如何從 Jar 讀取資源文件

[英]GraalVM native-image how to read resource file from Jar

我有一個 jar 文件,其中包含一些文本文件,我正在嘗試將文件加載為:

InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(path);

它不能作為錯誤顯示:

[SUB] java.lang.NullPointerException
[Thu Aug 27 12:07:48 SGT 2020][INFO] [SUB]  at java.io.Reader.<init>(Reader.java:167)
[Thu Aug 27 12:07:48 SGT 2020][INFO] [SUB]  at hellofx.HelloFX.readFileAsStringFromJar(HelloFX.java:116)
[Thu Aug 27 12:07:48 SGT 2020][INFO] [SUB]  at hellofx.HelloFX.test(HelloFX.java:107)

如果我嘗試將資源文件提取到類路徑src/main/resources ,那么它工作正常。

我的問題是,我們可以從 Jar 中讀取資源文件嗎(在GraalVM本機映像中運行時)? 有很多第三方 Java 庫正在讀取捆綁在同一個 Jar 中的資源文件,我們如何克服這個問題?

PS更新:

這確實是我的錯誤,與class.getResource()class.getClassLoader().getResource()混淆。 一個在開頭需要斜杠,另一個不允許。 一旦我刪除了path變量中的斜杠,它就可以正常工作。

您需要通過-H:IncludeResources=path告訴原生圖像要包含哪些資源。 該值可以是正則表達式。

有關更多詳細信息,請參閱文檔: https : //github.com/oracle/graal/blob/master/substratevm/Resources.md

暫無
暫無

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

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