从.jar加载文件时,URI不是分层的

时间:2016-12-29 02:51:16

标签: java io uri java-io

所以我在从jar文件运行程序时加载文件时遇到问题。我知道存在与此非常相似的问题,但我发现没有一个对我有用或做我需要的。我想从我的jar文件夹中加载一个目标文件,但是当我这样做时,我收到以下错误:

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

级别是一个不允许我访问的目录,我不知道如何让它工作。我已经看到过诸如使用InputStream之类的建议,但我不确定如何使用它并仍将其视为可以从中读取对象的文件。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

这是因为Update employee set code=0xB900001752F10001 where main_employee_id=1002; 是一个目录而不是一个文件。检查this question

的答案