在我在Tomcat 7中的Web应用程序中,我使用servletContext.getResource("file.xml")
在应用程序中获取了一个资源。这将返回jndi:/localhost/app/file.xml
形式的网址。
但是,因为我需要将这个文件传递给一个只接受真实文件路径的库(我认为它有一个嵌入式Ruby脚本),URL不会这样做。
有没有办法获得真正的文件路径?我知道这会使应用程序无法从WAR运行,但没关系。
答案 0 :(得分:0)
我有一个非常脏的解决方法:
// get resource
URL resU = servletContext.getResource("style.less");
// get scratch dir
File workDir = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
// copy resource to scratch file
File newFile = new File(workDir, "style.less");
Files.write(Resources.toByteArray(resU), newFile); // Google Guava
我应该能够通过一些缓存/校验和加快速度,但它并不漂亮。
答案 1 :(得分:0)
File file = File.createTempFile("style", ".less");
// ...