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”吗?是的,它是法语:)好的,只是想验证它不是一个打字错误。@Takichiiiresources
目录比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();