gpt4 book ai didi

java - 可执行的 shell 脚本在嵌入然后从 java 存档中提取后仍然可以执行吗?

转载 作者:行者123 更新时间:2023-11-29 09:03:58 25 4
gpt4 key购买 nike

我有一个包含一些可执行脚本文件的应用程序。而且我知道我们将在其上部署应用程序的目标机器具有 java.lang.因此,我将应用程序打包到 java 存档中,并使用“jar xf jarFileName”在目标机器上解压缩。但是可执行脚本不再可执行。是的,我们可以运行“chmod _x scriptName”。但是,在没有用户干预的情况下,脚本是否可以在从 jar 文件中提取后执行?我已经读过:this related question但这并不是要保持可执行性。

最佳答案

JAR 文件实际上是一个 ZIP 文件,所以这个问题涵盖了您要问的大部分内容:Maintain file permissions when extracting from a zip file using JDK 5 api

问题是像执行位这样的东西是特定于操作系统的,要让它们在不同的操作系统上工作有各种各样的问题。 “执行”位也不异常(exception)。一个典型的(外部)ZIP 文件提取器应该能够处理这个问题(模数相关信息首先在 ZIP 文件中!)。但是,当您以编程方式提取 ZIP/JAR 文件时执行此操作将涉及取消选择“额外数据”字节数组……我认为。我不知道 jar 命令的作用...不过如果您正在玩游戏,您可以查看源代码...

如果您知道您正在提取的文件/脚本应该 是可执行的,我建议您简单地修改您的提取过程以在提取后适本地设置执行位。在 Java 7 中,您可以使用新的 NIO 文件属性 API 来做这件事。或者在外部运行 chmod。您也可以尝试使用 unzip 实用程序而不是 jar 来解压缩……尽管这假定平台已经安装了 unzip

关于java - 可执行的 shell 脚本在嵌入然后从 java 存档中提取后仍然可以执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com