Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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:访问src外部的项目目录_Java_Url_Nullpointerexception_Resources_Directory - Fatal编程技术网

Java:访问src外部的项目目录

Java:访问src外部的项目目录,java,url,nullpointerexception,resources,directory,Java,Url,Nullpointerexception,Resources,Directory,我想从文件夹resources/images/中检索文件,因此我在Main.java中执行此操作: URL url = getClass().getClassLoader().getResource("../ressources/images/"); File folder = new File(url.getFile()); File[] listOfFiles = folder.listFiles(); 下面是整个项目层次结构 myGame - ressources

我想从文件夹
resources/images/
中检索文件,因此我在
Main.java中执行此操作:

URL url = getClass().getClassLoader().getResource("../ressources/images/");
File folder = new File(url.getFile());

File[] listOfFiles = folder.listFiles();
下面是整个项目层次结构

   myGame
      - ressources
          -- images
              --- image1.jpg
              --- image2.jpg
              --- image3.jpg
      - src
          -- dvt
             --- Main.java
但是我在第二行得到了这个错误:

线程“JavaFX应用程序线程”中出现异常 java.lang.NullPointerException

所以我假设它找不到目录

使用绝对路径可以很好地工作,但不使用相对路径:

    File folder = new File("D:\\courses\\UE4\\projet2\\ressources\\images\\");
文件夹“Resources”与应用程序位于同一级别,因此应该可以使用。但您使用的是JavaMaven约定,将源代码放在src/main/java,将资源放在src/main/resources,但名称不同,我想没有构建工具。这很奇怪。

“ressources”只是你文章上的一个输入错误,还是文件夹的实际名称

此外,形式结构通常是

  myGame
      - src
          -- main
            --- java
               ---- Main.java
          -- resources
            --- images
              ---- image1.jpg
              ---- image2.jpg
              ---- image3.jpg
您得到的NPE是因为第2行的url为空

这对我来说没问题:

URL url = getClass().getClassLoader().getResource("images");
File folder = new File(url.getFile());
File[] listOfFiles = folder.listFiles();
System.getProperty(“user.dir”)是项目文件夹,在您的例子中是myGame
只需附加发回路径,它就会工作。

您的
资源
目录中真的有双“s”吗?是的,它是法语:)好的,只是想验证它不是一个打字错误。@Takichiii
resources
目录比
Main.java
目录高两级,而不仅仅是一级。您是否尝试过使用
.getResource(“../../resources/images/”)?为什么要使用相对路径?我以前尝试过(参见其他注释),但没有成功。我有义务严格使用这个层次结构,它不是一个Maven项目。这个解决方案有效。我已经试过了。但在运行游戏时,Resources文件夹必须与可执行文件jarNo位于同一级别,这根本不是我问题的解决方案,我想严格使用我给出的结构,即在
Resources
外部
src
。更改问题陈述不是解决问题的方法。不,这根本不是解决问题的方法,我想使用我给出的严格结构,更改问题陈述不是解决问题的方法。阅读主题名称:“访问src之外的项目目录”对不起,我注意到了你的整个帖子,但没有注意到标题。日本脑炎。我们需要一个新的角度。如果您想使用getClassLoader(),我们需要手动将/resources/文件夹添加到类路径,或者使用与getClassLoader()不同的东西
URL url = getClass().getClassLoader().getResource("images");
File folder = new File(url.getFile());
File[] listOfFiles = folder.listFiles();
File folder = new File(System.getProperty("user.dir")+"/ressources/images");
File[] listOfFiles = folder.listFiles();