Java 如何在构建的jar中适当地放置和使用项目资源?
我有一个包含以下文件夹的项目: resources/xml schemata/someXMLschema.xsd 我的项目中的一个类使用这个xml模式在导入xml文件之前验证它们 此类有一个局部变量,指出架构路径:Java 如何在构建的jar中适当地放置和使用项目资源?,java,jar,relative-path,Java,Jar,Relative Path,我有一个包含以下文件夹的项目: resources/xml schemata/someXMLschema.xsd 我的项目中的一个类使用这个xml模式在导入xml文件之前验证它们 此类有一个局部变量,指出架构路径: schemaFilePath = "resources" + File.separator + "xml-schemata" + File.separator + "someXMLschema.xsd" 当然,这在本地有效 现在我想把我的工具放在一个罐子里送给别人 但是使用jar的
schemaFilePath = "resources" + File.separator + "xml-schemata" + File.separator + "someXMLschema.xsd"
当然,这在本地有效
现在我想把我的工具放在一个罐子里送给别人
但是使用jar的项目找不到模式,原因可能有两个:
jar构建过程已经删除了resources文件夹,因此xml schemata文件夹位于jar根文件夹中。
该项目甚至不查看使用过的jar内部,而是假设有一个本地资源/XMLSchemata文件夹。
以下哪一个可能是问题?我如何解决
File f1 = new File("..\\..\\..\\config.properties");
试图访问文件的路径位于项目目录中,然后像这样访问文件
File f=new File("filename.txt");
如果您的文件位于其他源/资源中
此外,最重要的是读取并打印当前目录:
System.getProperty("user.dir");
这样你就能知道你需要的相对路径是什么,如果你试图从一条不好的路径上阅读,或者你需要的资源不在那里,你就会更容易理解
System.getProperty("user.dir");