我曾希望使用:classpath:/mydata/response.xml將文件複製到。設置在Tomcat上運行的相對路徑
像這樣.. Path dest = Paths.get(「classpath:/mydata/response.xml」);
春季啓動這適用於其他地方,但不使用路徑!
我想一個文件在複製這樣...
InputStream is = file.getInputStream();
//Which relative Path syntax?
Path dest = Paths.get("./src/main/resources/mydata"+fileName);
Files.copy(is, dest);
任何建議,如何設置我的文件存儲在Tomcat中的相對路徑?
我的目標是:
MyProject的\ SRC \主\資源\ MYDATA
這是一個很好的春季啓動項目..
我推薦作爲_ ** strong ** _可以想象得到,您不會將數據放在您的Web應用程序目錄層次結構中的任何位置。這樣做會使升級到新版本的應用程序變得困難;你可以忘記爲部署做一個簡單的戰爭。 –
嗯,沒錯。所以在我的例子Tomcat中設置服務器上的絕對路徑會更好。我仍然不介意如上所述知道如何設置相對路徑。 – JohnnyO
如果你有'HttpServletRequest請求',你可以使用'request.getServletContext()。getRealPath(「./foo/bar.html」);'獲得給定的dir /文件的實際文件系統路徑。這可能與'/ usr/local/tomcat/webapps/yourapp/foo/bar.html'類似。或者,如果你將ServletContext保存在某個地方,只需要'context.getRealPath(「.....」)''。請參閱[docs for getRealPath](https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String))...但是這不會回答你的問題關於與**類路徑** _相關的問題。 –