2012-02-12 31 views
2

我在Windows 7上使用netbeans发布了一个WebApplication(用于Tomcat)。为了运行Web应用程序,我需要运行一次insall脚本。Tomcat部署:使包含的脚本可执行

这个脚本(* .BAT用于Windows和*为Linux .SH包括在我的战争文件(WEB_INF)。

现在,每次我部署WAR文件,并希望在Linux上运行我的脚本要叫

chmod +x install.sh 

第一。

有没有一种办法,该脚本可以由默认情况下执行的?我不希望有部署后执行一些额外的命令使脚本可执行。

澄清: 我不是新来的Linux,我知道如何设置文件的可执行权限。这不是问题。我的问题是:我必须做什么,以便在tomcat部署我的* .war文件(解压缩它)后立即执行此脚本。如果我也将使用Linux进行开发,我会尝试根据我的来源设置权限(也许我会在有更多空闲时间的情况下尝试)。但我正在使用Windows和NetBeans。

是否有任何属性可以设置为达到我的目标,还是有可能使用ant来实现此目的?

顺便说一句:这种方法是否存在安全相关的问题?该脚本查找java可执行文件,并调用基于java的GUI安装程序...

回答

2

更改权限,如下:

String [] command = {"/bin/chmod","+x",full_path_to_install.sh}; 
Runtime rt = Runtime.getRuntime(); 
Process pr = rt.exec(command); 
pr.waitFor(); 

允许应用程序使用脚本之前设置可执行权限。在tomcat部署你的war文件之后,它只是在你的应用程序使用它之前不可执行。

+0

这听起来不错,下周我会更仔细地看,因为我现在必须完成另一个项目。 – AlexS 2013-10-30 09:16:49

0

假设您每次都调用相同的“install.sh”,则只需要设置一次执行位。此外,只需要为用户设置可执行位(您提供的命令将为所有人设置)。应用程序的初始化过程中

 
chmod u+x install.sh 
+0

对不起,我想你误解了我的问题。详情请参阅我的编辑。 – AlexS 2012-02-13 07:24:35

+0

关于为每个人设置可执行文件:您对此完全正确。当然,我只应该为需要/被允许执行这个脚本的用户设置这个权限,但是我现在正在开发中;)当一切正常时我会关心权限 – AlexS 2012-02-13 07:36:04

+0

啊,所以你想要shell Web-inf中的脚本设置为可执行文件?唯一可行的方法是通过父脚本中的chmod命令。但是,我必须说,我从来没有听说过在战争文件中放置shell脚本。 – bubbly 2012-02-14 05:32:50

相关问题