0

我目前正在使用 Java 开发跨平台应用程序(Windows、Mac OS X、Linux)并在 Windows 上构建项目。在构建过程中,我为 Linux 构建了一个 shell 脚本来“包装”可执行的 jar 文件。

我将shell脚本的可执行位设置如下:

File script = new File("run.sh");
script.setExecutable(true);

但是在将 run.sh 文件传输到 Linux 时,我总是得到以下权限:

-rw-r--r-- 1 salocinx salocinx 120 2014-08-20 20:21 run.sh

有人知道如何将 x 位从 Windows 保存到 Linux 吗?

4

2 回答 2

2

您的文件传输程序需要保留权限选项。我不认为你会找到一个。您可以在 unix 机器上运行您的程序来更改文件权限,或者您可以运行find类似的命令

find . -name "*.sh" -exec chmod a+x {} \;

或者您可以尝试设置您的umask,

umask u+x

或者(如果您使用的是 cygwin),您可以使用tarwith

tar cfp file.tar <scripts>

请注意,这p是保留权限。

于 2014-08-20T18:32:55.607 回答
1

setExecutable在 Windows 上不执行任何操作,如果失败则返回 false,您可以检查一下。

Windows 文件系统没有可执行权限的概念。

文件传输到 Linux 后有什么权限,取决于您传输它们的程序,但通常是 600 或 644。要解决这个问题,您必须在合适的 Unix 操作系统下设置可执行位文件系统。

于 2014-08-20T18:37:22.907 回答