什么是Java的资源文件夹的Java等价物?

时间:2011-02-02 12:57:52

标签: java wicket

My Wicket Web应用程序包含Flash(* .swf)FLV播放器。以下代码:

final String script = "var swfVersionStr = '10.0.0';"
    + "var xiSwfUrlStr = 'playerProductInstall.swf';"
    + "var flashvars = {file:'/proj/resources/video.flv'};"
    + "var params = {};"
    + "params.wmode = 'transparent';"
    + "params.quality = 'high';"
    + "params.allowscriptaccess = 'sameDomain';"
    + "params.allowfullscreen = 'true';"
    + "var attributes = {};"
    + "attributes.id = 'test';"
    + "attributes.name = 'test';"
    + "attributes.align = 'left';"
    + "swfobject.embedSWF('/proj/resources/mediaplayer.swf', 'movieDiv', '640', '480', swfVersionStr, xiSwfUrlStr, flashvars, params, attributes);"
    + "swfobject.createCSS('#flashContent', 'display:block;text-align:left;');";

add(new AbstractBehavior() {
    public void renderHead(IHeaderResponse response) {
        super.renderHead(response);
        response.renderOnLoadJavascript(script);
    }
});

播放FLV。 swfobject.js文件放在我服务器的资源文件夹中。当我在localhost上测试它时,资源文件夹的绝对路径是:/home/tapas/Desktop/proj/work/Jetty_0_0_0_0_80_proj.war__proj__qk44r3/webapp。现在,如何使用Java将文件保存在服务器的资源文件夹中? JavaScript将资源文件夹路径标识为/proj/resources/; Java中这条路径的等价表达式是什么?我试过了:

try{
    File file=new File("/proj/resources/joymaa.txt");
    if(file.exists()){
        System.out.println("File exists");
    }else{
        System.out.println("File does not exists");
    }
}catch(Exception exception){
    System.out.println(exception.getMessage());
}

这不显示任何错误消息,但显示“文件不存在。”

3 个答案:

答案 0 :(得分:1)

我建议不要使用绝对文件路径来查找WAR文件中的资源。

如果您的Java应用程序需要资源,最好将其放在CLASSPATH中并使用servlet上下文中的getResourceAsStream()来获取用于读取的InputStream。

答案 1 :(得分:0)

尝试找出你的实际工作目录是什么...这可能会有所帮助:example 我不认为java可以理解你的相对路径,因为它运行于不同于javascript的目录。只是我的意见,但试一试。

答案 2 :(得分:0)

((WebApplication)getApplication())。getServletContext()。getRealPath(“/ resources / video / xml / video.xml”)