Java 我正在从事EclipseWeb动态项目。使用SpringMVC。出于某种原因,我必须使用

Java 我正在从事EclipseWeb动态项目。使用SpringMVC。出于某种原因,我必须使用,java,eclipse,servlets,file-io,web-applications,Java,Eclipse,Servlets,File Io,Web Applications,我正在使用eclipse的web动态项目。我正在使用一个库,它将xml文件作为配置的输入。它使用以下代码加载xml文件 URL url = Resource.class.getClassLoader().getResource(filename); 我无法更改库中的代码。我需要将此文件名作为字符串传递给它。我应该将文件(fastAlgo.xml)保存在哪里,如何以字符串形式给出路径?我的项目结构如下- Project - -deployment descriptor -Java res

我正在使用eclipse的web动态项目。我正在使用一个库,它将xml文件作为配置的输入。它使用以下代码加载xml文件

URL url = Resource.class.getClassLoader().getResource(filename);
我无法更改库中的代码。我需要将此文件名作为字符串传递给它。我应该将文件(fastAlgo.xml)保存在哪里,如何以字符串形式给出路径?我的项目结构如下-

Project -
  -deployment descriptor
  -Java resources
   -target
   -WebContent
      -META-INF
      -WEB-INF
      -fastalgo.xml

你试过WEB-INF/classes还是WEB-INF/lib?我认为这些都在web应用程序的默认类路径下。如果您想将其作为资源加载,它需要位于类路径上。如果要将其作为web应用程序内部的文件加载,则需要使用
getRealPath
。如果要将其作为web应用程序外部的文件加载,则只需提供一个绝对路径名。@DaveNewton我需要将其作为内部文件加载,即只需为内部算法加载一次。此文件也是静态的,在项目运行时不会更改。但我不能使用getResource以外的任何东西,因为我不能在库中进行更改。然后将文件放在类路径上,就像我说的那样。@DaveNewton它起作用了。谢谢。你能解释一下为什么会这样吗?