我的java应用程序不读取我的文件(maven项目)
我在一个Java简单项目中有一个应用程序。但是,我需要将此项目粘贴到Maven项目。所以,我基本上做了一个简单的Maven项目,我复制并粘贴了我所有的类。我需要在服务器中运行war,并且需要像Java应用程序一样运行Main,因为这个应用程序配置war应用程序。然而,当我运行Main时,我得到了一些以前没有的错误: java.io.FileNotFoundException:resources\config.properties(系统找不到指定的路径) 当在代码中时:我的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
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程序)打开并检查它。根据我(有限的理解),资源
包含在类路径中。非常感谢,这有助于我使用属性。我意识到我的错误是另一回事。谢谢