Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse从文件中读取,但Runnable.jar文件不读取_Java_Jar_Runnable - Fatal编程技术网

Java Eclipse从文件中读取,但Runnable.jar文件不读取

Java Eclipse从文件中读取,但Runnable.jar文件不读取,java,jar,runnable,Java,Jar,Runnable,我在做一个简单的游戏 Eclipse读取文本文件,但当我将项目导出为可运行jar文件时,它不会读取它 我的资源文件夹如下所示: 守则: BufferedReader br = new BufferedReader( new FileReader("Resources/LevelManager/LevelManager.txt")); 当我运行runnable jar文件时,出现以下错误: java.io.FileNotFoundException: Resources\LevelMa

我在做一个简单的游戏

Eclipse读取文本文件,但当我将项目导出为可运行jar文件时,它不会读取它

我的资源文件夹如下所示:

守则:

 BufferedReader br = new BufferedReader(
   new FileReader("Resources/LevelManager/LevelManager.txt"));
当我运行runnable jar文件时,出现以下错误:

 java.io.FileNotFoundException: Resources\LevelManager\LevelManager.txt (System cant find the path)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileReader.<init>(Unknown Source)
    at LevelManager.Utils.getLevel(Utils.java:13)
    at LevelManager.LevelManager.<init>(LevelManager.java:15)
    at State.GameState.<init>(GameState.java:26)
    at Main.Game.init(Game.java:54)
    at Main.Game.run(Game.java:80)
    at java.lang.Thread.run(Unknown Source)`
java.io.FileNotFoundException:Resources\LevelManager\LevelManager.txt(系统找不到路径)
位于java.io.FileInputStream.open0(本机方法)
位于java.io.FileInputStream.open(未知源代码)
位于java.io.FileInputStream。(未知源)
位于java.io.FileInputStream。(未知源)
位于java.io.FileReader。(未知源)
在LevelManager.Utils.getLevel(Utils.java:13)
LevelManager.LevelManager.(LevelManager.java:15)
GameState.GameState.(GameState.java:26)
在Main.Game.init(Game.java:54)
在Main.Game.run(Game.java:80)
位于java.lang.Thread.run(未知源)`

谢谢您的回答。

这是一个经典错误

您的应用程序将在自己的jar中运行;这意味着它的资源将包含在jar中,而不能作为
文件
对象使用。您需要使用类加载器

我不确定您打算如何读取资源,但下面是如何从资源中获取流(请注意,斜杠用于分隔符,始终:

@WillNotClose //this is a JSR 305 annotation
public static InputStream loadResource(final String resourcePath)
    throws IOException
{
    final URL url = EnclosingClass.class.getResource(resourcePath);
    if (url == null)
        throw new IOException(resourcePath + ": resource not found");
    return url.openStream();
}

你的文本文件是JAR文件中的资源吗?我的意思是资源目录是打包在JAR文件中的吗?你的源代码文件夹和资源文件夹的布局是什么?我搞不懂。我怎么能用你的代码读取这样的文件呢?BufferedReader br=new BufferedReader(new FileReader(“Resources/LevelManager/LevelManager.txt”);String String=br.readLine();br.close();return parseInt(String);@fgrOk我做到了:)Thak you:)