2017-02-10 74 views
1

我使用Intellij IDEA 2016.3,Java桌面應用程序。獲取要從資源加載到瀏覽器的文件root

我的模塊結構,看起來像這樣:

module 
    |- resources 
    |_ page.html 
    |-src 
    |-pom.xml 

我編譯謨通過Maven來.exe文件。

我用SWT瀏覽器,我想從資源頁面開始。

如何從編譯後可工作的資源中獲取此文件的路徑?

我試圖負載路徑page.html如下:

String pagePath = new File(getClass().getClassLoader().getResource("page.html").getFile()).getPath(); 

但是在編譯項目之後 - 它無法找到該文件。但是,當運行項目(無需編譯爲.exe) - 它運行良好。

如何糾正?

+0

加載它在瀏覽器中的「資源」 dir是在同一水平「src」dir? (默認情況下,在Maven項目中,它是src/main/java和src/main/resources) – hammerfest

+0

以及從哪個目錄發出上述命令的Java類?直接在src或某個子目錄下? – hammerfest

+0

Src和資源處於同一水平 – ACz

回答

0

解決

我解決它通過加載page.html內容爲HTML和browser.setText(htmlPageContent)

3

Maven約定是在/ src/main/webapp中放置靜態網頁資源(html,css,js,images等)。參見標準目錄佈局在這裏:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

+0

所以,你說我不需要把它放在資源中,但在其他來源?加載瀏覽器看起來首先找到文件,然後獲取它們的路徑並使用此路徑加載瀏覽器(如在文本字段中將路徑輸入到瀏覽器中的url),或者有更好的方法來加載頁面 - 不加載從路徑文件。 – ACz

+0

如果您正在構建一個Web應用程序(打包爲一個war文件,或作爲一個帶有嵌入式Web容器的可執行jar),並且您正在使用Maven,請將您的Web資源文件(如html或css文件)放在/ src/main/webapp文件夾。構建完成後,您的資源將通過Web瀏覽器提供。例如,如果添加/src/main/webapp/myFolder/foo.html,那麼在安裝並運行webapp後,您將能夠在瀏覽器中看到http:// server:port/myFolder/foo。 html –

+0

我使用加載SWT瀏覽器和自己創建的頁面來構建桌面應用程序。 – ACz