【发布时间】:2018-01-04 14:26:04
【问题描述】:
我用过
File file = new File(Game.class.getResource("Tiles.txt").getFile())
从我的资源文件夹中获取 txt 文件,它在 IDE 中运行良好,但是当构建到 jar 并在环境之外运行时,它会抛出未找到文件的错误(我通过在 CMD 中运行看到)。
我使用类似的方法来获取我所有的图像和精灵表:
BufferedImage loadedImage = ImageIO.read(Game.class.getResourceAsStream("EG.png"));
它们在导入文件方面有何不同?为什么我的路径不正确?
错误 CMD 给出: http://imgur.com/a/1SC1L
C:\Users\Taka\Desktop>java -jar ProjectC-Revamped.jar
java.io.FileNotFoundException: file:\C:\Users\Taka\Desktop\ProjectC-Revamped.jar!\Tiles.txt (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at Tiles.<init>(Tiles.java:16)
at Game.<init>(Game.java:91)
at Game.main(Game.java:192)
java.io.FileNotFoundException: file:\C:\Users\Taka\Desktop\ProjectC-Revamped.jar!\Maps\Map.txt (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at Map.<init>(Map.java:20)
at Game.<init>(Game.java:94)
at Game.main(Game.java:192)
【问题讨论】:
-
是那个不起作用的文件,居然包含在.jar文件中?
-
@TmTron 我用winrar打开jar,发现里面都是文本文件
-
尝试用 try catch 包围失败的调用并发布错误消息。
-
@TmTron 已添加到帖子中
-
不要发布堆栈跟踪的图片。将实际文本复制并粘贴到您的问题中。
标签: java file intellij-idea import