2011-05-04 179 views
5

有沒有辦法在java中檢索url的絕對路徑(http:// localhost:8080/myApp)。該場景是,我需要連接到位於tomcat服務器的csv文件。如果我輸入絕對路徑,這個語句運行良好,但是有一個解決方案可以使用getAbsolutePath()來檢索url的路徑,如果我錯了,很抱歉。獲取java中url的絕對路徑

Connection conn = DriverManager(getConnection("jdbc:relique:csv:/home/apache-tomcat-6.0.26/webapps/myApp/")) 

在此先感謝。

回答

9

您可以使用ServletContext.getRealPath(),它正是你想要的。

請注意,它確實而不是必然適用於所有情況。例如,如果您的Tomcat配置爲部署.war文件而不解壓縮,那麼這將返回null

+0

感謝您的答覆......你的建議在javax.servlet.ServletContext返回錯誤消息「getRealPath(java.lang.String中)聲明不能應用於()「 – Ria 2011-05-04 09:55:41

+0

您需要將它傳遞給相對於您的上下文路徑的(URL)路徑。所以如果你想知道你的webapp的「root」目錄,只需傳入'「/」'。 – 2011-05-04 10:00:30

+0

ServletContext.getRealPath(「/」);作品....謝謝Joachim .. – Ria 2011-05-04 10:00:49

0

我對JAVA知之甚少。

May be getServletContext().getContextPath() is something you are looking for

編輯:
Or may be getRealPath()

+0

感謝您的回覆......這個聲明只是返回/ myApp。但是我需要像這樣的東西.../home/user/apache-tomcat/webapps/myApp – Ria 2011-05-04 09:54:05

+0

好吧,已經告訴我對JAVA不太瞭解。怎麼樣getServletContext()。getRealPath()? – Mayank 2011-05-04 09:56:21

+0

我試過.. ServletContext.getRealPath(「/」)工作.. – Ria 2011-05-04 10:14:20

-1

Tomcat是不是一個HTTP服務器。全部tomcat網址參考服務,而不是文件。

如果您想通過任何http URL獲取它,您必須實現另一個服務,該服務根據請求發送csv文件。像http://localhost/myapp/input.csv這樣的URL需要像httpd這樣的http服務器。

(希望我把你的問題正確的...)

+0

是安德烈亞斯,我用了ServletContext.getRealPath(「/」)。有用... – Ria 2011-05-04 10:13:18