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());
}
这不显示任何错误消息,但显示“文件不存在。”
答案 0 :(得分:1)
我建议不要使用绝对文件路径来查找WAR文件中的资源。
如果您的Java应用程序需要资源,最好将其放在CLASSPATH中并使用servlet上下文中的getResourceAsStream()
来获取用于读取的InputStream。
答案 1 :(得分:0)
尝试找出你的实际工作目录是什么...这可能会有所帮助:example 我不认为java可以理解你的相对路径,因为它运行于不同于javascript的目录。只是我的意见,但试一试。
答案 2 :(得分:0)
((WebApplication)getApplication())。getServletContext()。getRealPath(“/ resources / video / xml / video.xml”)