1

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

资源/xml-schema/someXMLschema.xsd

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

这个类有一个指向模式路径的局部变量:

schemaFilePath = "resources" + File.separator + "xml-schemata" + File.separator + "someXMLschema.xsd"

当然,这在本地有效。

现在我想把我的工具放在一个罐子里送给其他人。

但是使用 jar 的项目找不到模式,因为可能有两件事:

  • jar 构建过程已删除资源文件夹,因此 xml-schemata 文件夹位于 jar 根文件夹中。
  • 该项目甚至不查看使用的 jar 内部,而是假定一个本地资源/xml-schema 文件夹。

其中哪一个可能是问题,我该如何解决?

4

1 回答 1

0
 File f1 = new File("..\\..\\..\\config.properties");  

试图访问文件的路径在项目目录中,然后像这样访问文件。

File f=new File("filename.txt");

如果您的文件在OtherSources/Resources

this.getClass().getClassLoader().getResource("relative path");//-> relative path from resources folder

另外,最无能为力的是,读取并打印当前目录:

System.getProperty("user.dir");

这样你就会知道你需要的相对路径是什么,如果你试图从错误的路径中读取或者你需要的资源不存在,你会更容易理解

于 2013-08-26T09:20:29.273 回答