Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 如何在构建的jar中适当地放置和使用项目资源?_Java_Jar_Relative Path - Fatal编程技术网

Java 如何在构建的jar中适当地放置和使用项目资源?

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的

我有一个包含以下文件夹的项目:

resources/xml schemata/someXMLschema.xsd

我的项目中的一个类使用这个xml模式在导入xml文件之前验证它们

此类有一个局部变量,指出架构路径:

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");