2017-02-10 75 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