我的java应用程序不读取我的文件(maven项目)

我的java应用程序不读取我的文件(maven项目),java,eclipse,file,maven,Java,Eclipse,File,Maven,我在一个Java简单项目中有一个应用程序。但是,我需要将此项目粘贴到Maven项目。所以,我基本上做了一个简单的Maven项目,我复制并粘贴了我所有的类。我需要在服务器中运行war,并且需要像Java应用程序一样运行Main,因为这个应用程序配置war应用程序。然而,当我运行Main时,我得到了一些以前没有的错误: java.io.FileNotFoundException:resources\config.properties(系统找不到指定的路径) 当在代码中时: input = new F

我在一个Java简单项目中有一个应用程序。但是,我需要将此项目粘贴到Maven项目。所以,我基本上做了一个简单的Maven项目,我复制并粘贴了我所有的类。我需要在服务器中运行war,并且需要像Java应用程序一样运行Main,因为这个应用程序配置war应用程序。然而,当我运行Main时,我得到了一些以前没有的错误:

java.io.FileNotFoundException:resources\config.properties(系统找不到指定的路径)

当在代码中时:

input = new FileInputStream("resources/config.properties");
这也不起作用:

faceDetector = new CascadeClassifierDetector("D:/retinoblastoma/workspace/Resources/CascadeClassifiers/FaceDetection/haarcascade_frontalface_alt.xml");
我如何解决这个问题?

如果您使用的是“简单的maven项目”,maven的方法是在那里有一个
src/main/resources
文件夹。您是否将pom.xml配置为执行与此不同的操作

如果您正确地完成了jar创建部分,那么获取类路径上的文件的正确方法是:

getClass().getResourceAsStream("/path/to/resource.ext");
前面的正斜杠很重要

如果文件不在您的类路径上(换句话说,如果上面的方法不起作用,就会出现这种情况),那么您可能需要配置maven以使用不同的资源目录

您可以这样做(根据需要更改参数):


...
META-INF/神经丛
假的
${basedir}/src/main/plexus
configuration.xml
**/*.物业
...
...

然后,您的文件将位于类路径上,上述代码将正常工作。有关更多信息,请阅读上面的链接文档。

在一个简单的Mavne项目中,所有资源都应该位于src/main/resources中。您可以通过以下方式获取属性文件(对于非静态方法):

Properties prop=新属性()
prop.load(getClass().getClassLoader().getResourceAsStream(“config.properties”)

对于静态方法,请使用:
.class.getClassLoader().getResourceAsStream(“config.properties”)

有关更多信息,请参阅此链接:

尽量不要引用资源,而是尝试使用类似于
getClass().getResourceAsStream(“/config.properties”)
的东西。根据maven设置的方式,这些文件可能已包含在生成的Jar文件中。您可能希望(使用任何zip程序)打开并检查它。根据我(有限的理解),
资源
包含在类路径中。非常感谢,这有助于我使用属性。我意识到我的错误是另一回事。谢谢