Java Blog for Alex Wan

Let life be beautiful like summer flowers and death like autumn leaves.

统计

留言簿(10)

BlogJava

Blogs

DIV+CSS

JQuery相关

友情链接

常去的地方

数据供应

阅读排行榜

评论排行榜

[linux]linux下的脚本与java中的相对路径

背景:
linux使用ANT编译java类并部署到Tomcat下,然后使用脚本(deploy.sh)开启Tomcat,脚本如下:
deploy.sh(其绝对路径为:/usr/local/myapp/deploy.sh)

1/usr/local/apache-tomcat-5.5.20/bin/shutdown.sh
2ant
3/usr/local/apache-tomcat-5.5.20/bin/startup.sh
4
其中各行的意义:
(1)关闭tomcat
(2)编译java类并部署到tomcat
(3)开启tomcat
这里使用的命令都是绝对路径运行的。

问题来了:
(1)在项目中安排了log4j的日志输出到myapp.log,其路径写法:../log/myapp.log;启动服务器的时候在catalina.out中输出错误信息,说../log/myapp.log没有找到。
(2)在程序中使用了output/files/,程序完成后很难才找到文件,因为其位置并不像在window下调试时一样,最后使用 find   -name   output -type   d命令才找到,发现原来这个文件夹所在的位置就是在:/usr/local/myapp/下面。

倪端初现:
可见,使用脚本开启tomcat时如果以绝对路径的方式去开启的话,那么在程序中的相对路径就会以脚本的当前目录作为路径的起始点。这样就导致了在文件的位置上出现变化,使得文件管理出现困难甚至对已有的文件造成破坏。

问题解决:
解决路径的问题有很多,在这里主要说一下以下两个思路:
(1)使用可配置的绝对路径,在ANT部署的时候,可以将Window下的路径替换成Linux下的绝对路径,这样就很方便管理,此为上策。
(2)使用相对路径时,开启Tomcat时一定要切换到tomcat的bin文件夹开启,这样相对路径指向的位置就和Window下的一致了,此为下策也。
使用相对路径的脚本如下:
1/usr/local/apache-tomcat-5.5.20/bin/shutdown.sh
2ant
3cd /usr/local/apache-tomcat-5.5.20/bin/
4./startup.sh
其中各行的作用:
(1)关闭tomcat
(2)编译java类并部署文件
(3)切换目录到tomcat的bin文件夹
(4)开启tomcat


估计其他应用服务器下使用脚本和相对路径也时也会遇到一样的问题,方法估计也是类似的。



Let life be beautiful like summer flowers and death like autumn leaves.

posted on 2008-12-12 17:31 Alexwan 阅读(2487) 评论(0)  编辑  收藏 所属分类: J2EElinux


只有注册用户登录后才能发表评论。


网站导航: