2012-08-31 81 views
1

在我的應用程序中,我得到了一個函數,我需要在webcontent文件夾中寫一個文件,我有一個名爲data的文件夾,我需要寫一個新名稱,如果我給真正的路徑(C:\ Users \ SanWin \ workspace \ RoleAccessControl \ data \ ActivityLog.txt)它寫入文件,但是當項目要在不同的機器上運行時必須更改,所以我使用它來獲取真實路徑在web服務器中寫入文件而不指定真實路徑

ServletContext ctx = getServletContext(); 
     String path = ctx.getRealPath("/data/ActivityLog.txt"); 
     System.out.println(path); 

當我打印i的控制檯得到了下面的消息

C:\用戶\ SanWin \ workspace.metadata.plugins \或g.eclipse.wst.server.core \ TMP0 \ wtpwebapps \ RoleAccessControl \ DATA \ ActivityLog.txt

我不知道系統是如何得到這條線

.metadata.plugins \ org.eclipse .wst.server.core \ TMP0 \ wtpwebapps \

這是蝕,我期待像 C:\用戶\ SanWin \工作空間\ RoleAccessControl \數據\ ActivityLog.txt

如何獲得真正的路徑我想擺脫線(.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps),我看了,做了所有可能的我在互聯網上看到,但失敗,對不起,如果我做了一個重複的帖子,請諒解 感謝您的時間和迴應

+1

一般來說,你*很*很少想寫在應用程序內部。如果你部署爲戰爭,你*不能*。如果你重新部署,你可能會失去一切。這是一種更清潔,更安全的方法,用於指定Web應用程序部署目錄外的目錄*,然後寫入該目錄。 –

回答

2

在Eclipse的服務器視圖中,您可以雙擊您的服務器打開配置屏幕,允許您設置不同的部署路徑至少在Tomcat中)。請注意,只有在沒有任何部署時才能修改該設置,否則您將看到灰色顯示的選項。

enter image description here

.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\你得到是因爲你有使用工作區的元數據選項。

無論如何,如果您將戰爭直接手動部署到Tomcat webapps文件夾中,而不使用Eclipse,則您將獲得正確的路徑。

換句話說,你的代碼是正確的,並給你正確的路徑,你只是不喜歡你的應用程序正在部署的路徑。

希望這會有所幫助。

+0

:謝謝你的回覆,你的信息是如此有用的thx – optimus

相關問題