我從Tomcat容器中運行應用程序。用戶單擊一個鏈接,這最終會導致助手類中的方法創建一個文件並將其保存到文件系統。當這個代碼從單元測試/ eclipse運行時,它將文件保存在應用程序的根目錄中,但是當它從Tomcat的瀏覽器運行時,該文件存儲在Tomcat的bin目錄中。使用Spring MVC保存文件
如何找到應用程序根目錄,以便我可以選擇從哪裏保存文件?
- 我需要以編程方式查找根,因此可以將其部署到運行tomcat的其他環境中。
感謝
我從Tomcat容器中運行應用程序。用戶單擊一個鏈接,這最終會導致助手類中的方法創建一個文件並將其保存到文件系統。當這個代碼從單元測試/ eclipse運行時,它將文件保存在應用程序的根目錄中,但是當它從Tomcat的瀏覽器運行時,該文件存儲在Tomcat的bin目錄中。使用Spring MVC保存文件
如何找到應用程序根目錄,以便我可以選擇從哪裏保存文件?
感謝
你不應該依靠你的Tomcat的安裝位置,你的應用程序不應該寫入到Tomcat的安裝文件夾中,從來沒有。對於在生產環境中運行Tomcat的用戶,Tomcat安裝甚至不可寫。
因此,只能使用完整(絕對)路徑。
這個應用程序只是一個概念證明,可能會在其他開發者本地tomcat安裝上運行。我明白爲什麼這不利於生產。我可能會在配置文件中放入一個絕對路徑,這樣開發人員可以編輯它,以便他/她可以使用他們可以讀取/寫入的路徑。 – csilk 2012-08-05 20:24:14
要避免文件權限問題,您可能需要使用System.getProperty(「user.home」)來使用用戶的主目錄。這樣它就可以在環境和操作系統中一致地工作。
這看起來是比我接受的更好的答案,但我最終在其他答案中實現了這些建議。感謝您的幫助。 – csilk 2012-10-23 12:25:41
爲什麼不使用像MongoDB這樣的面向文檔的數據庫? – 2012-08-05 20:58:10