Java war文件中的可执行文件
我们想作为应用程序战争的一部分提供一些助手脚本(shell脚本)。不幸的是,我们的构建系统(maven)似乎放弃了对所有文件的权限,脚本最终没有设置可执行位Java war文件中的可执行文件,java,jakarta-ee,web-applications,war,Java,Jakarta Ee,Web Applications,War,我们想作为应用程序战争的一部分提供一些助手脚本(shell脚本)。不幸的是,我们的构建系统(maven)似乎放弃了对所有文件的权限,脚本最终没有设置可执行位 甚至有可能做到这一点吗?.war格式是否支持可执行文件?如果是:如何让maven保留权限/在流程中的某个地方修复权限?在WAR之外提供可执行文件。从WAR内部调用它们。问题更可能是这些位在底层zip格式中不受支持 如果使用脚本名显式执行/bin/sh,则不需要设置执行位 还要注意的是,您的程序知道脚本的位置,可以在启动之前调用“chmod+
甚至有可能做到这一点吗?.war格式是否支持可执行文件?如果是:如何让maven保留权限/在流程中的某个地方修复权限?在WAR之外提供可执行文件。从WAR内部调用它们。问题更可能是这些位在底层zip格式中不受支持 如果使用脚本名显式执行/bin/sh,则不需要设置执行位
还要注意的是,您的程序知道脚本的位置,可以在启动之前调用“chmod+xscript.sh”。AFAIK,没有办法在war/jar中设置文件权限(但是,在使用Maven Assembly插件创建项目的二进制分发存档时,这是可能的,但这是另一种情况) 因此,我想:
- 交付(作为二进制发行版)并在webapp外运行这些脚本~或~
- 从类路径读取文件,将它们写入
目录,设置执行位,然后从那里执行它们~或~java.io.tmpdir
- 使用@Thorbjørn解决方案(没有尝试过,但我想它会起作用);我只是想知道这些脚本是从哪里执行的