0
所以我在從jar文件運行我的程序時加載文件時出現問題。我知道存在與此類似的問題,但我找不到適合自己的工作或做我需要的工作。我想加載從一個文件夾中的目標文件在我的罐子,但是當我這樣做,我得到了以下錯誤:從.jar加載文件時URI不是分層的
Exception in thread "main" java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(Unknown Source)
at bbsource.BouncyBallV5.loadLevels(BouncyBallV5.java:370)
at bbsource.BouncyBallV5.<init>(BouncyBallV5.java:243)
at BBDriver.main(BBDriver.java:18)
370行如下
initSource = new File(getClass().getResource("/resources/levels").toURI());
我沒有問題這條線從Eclipse運行時,但我知道事情在jar文件中的行爲不同。文件夾層次是:
- SRC
- 資源
- 水平
- tier_one
- Level1.cbbl
- Level2.cbbl
- tier_two
- Level1.cbbl
- tier_one
- 水平
- 資源
水平是,它不會讓我訪問的目錄,我不知道如何讓它工作。我曾見過如使用InputStream
的建議,但我不確定如何使用它,並仍將其視爲可從中讀取對象的文件。
任何幫助,將不勝感激。
的答案我用它作爲目錄來訪問它的子目錄,最終它是文件,但我需要類似於目錄結構的索引原因。而且我仍然不確定如何實際使用'InputStream'。將代碼如何使用'initSource'幫助? – Ryan
嘗試使用'initSource = new File(getClass()。getResource(「/ resources/levels」)。getFile())' – AJA
這仍然適用於Eclipse,但從命令提示符運行時仍然出現錯誤。但是,這次錯誤是'NullPointerException'。 – Ryan