错误:`error - java.lang.IllegalArgumentException:从类路径获取文件时,URI不是分层的

Dan*_*sek 12 java file classpath

我有一个包含在类路径中的目录中的文件.看起来像这样pl/shenlon/io/gui/appData/file.txt.现在,当我尝试将其转换为文件并使用以下代码阅读时:

File cityNamesFile = new File(ClassLoader.getSystemResource("pl/shenlon/io/gui/appData/list.txt").toURI());
Scanner cns = new Scanner(cityNamesFile);
Run Code Online (Sandbox Code Playgroud)

我得到以下内容: -

error - java.lang.IllegalArgumentException: URI is not hierarchical.

我该如何解决这个问题?

Oli*_*ier 7

如果您的调用类本身与文本文件位于同一个包中,只需使用:

InputStream is = getClass().getResourceAsStream("list.txt");
Scanner cns = new Scanner(is);
Run Code Online (Sandbox Code Playgroud)


laz*_*laz 6

更换

File cityNamesFile = new File(ClassLoader.getSystemResource("pl/shenlon/io/gui/appData/list.txt").toURI());
Run Code Online (Sandbox Code Playgroud)

File cityNamesFile = new File(Thread.currentThread().getContextClassLoader().getResource("pl/shenlon/io/gui/appData/list.txt").getFile());
Run Code Online (Sandbox Code Playgroud)

  • 只适用于Eclipse,不适用于从终端运行的jar (3认同)