我使用Ant为Mac OS X创建了Java FX软件包。它用两个文件创建包 - 1. MyApplication.app 2. MyApplication.dmg
我希望将这两个文件复制到其他文件夹中,所以我在build.xml中编写了命令 -
<copy todir="my_new_folder">
<fileset dir="old_folder\bundles"/>
</copy>
在“my_new_folder”处成功复制这两个文件。但是从“my_new_folder”运行.app并没有启动我的应用程序虽然它正在从“old_folder”正确启动。
在比较复制的应用程序时,我发现exec(Unix可执行文件)位于 MacOS 文件夹(“显示包内容/内容/ MacOS”)不保留,其类型在文档文件中发生了变化。
如何将其类型保存到 Unix可执行文件,因为我只是执行简单的复制目录。
谢谢, Neelam Sharma
答案 0 :(得分:8)
如 ant copy任务 guide中所述:
Unix注意:复制文件时不保留文件权限;他们最终使用默认的UMASK权限。这是由于缺乏在当前Java运行时中查询或设置文件权限的任何方法。如果您需要保留权限的复制功能,请改用:
<exec executable="cp" ... >
因此,在您的情况下,请将<copy>
替换为:
<exec executable="cp">
<arg line="-R old_folder/bundles my_new_folder"/>
</exec>
(请注意,即使在Windows下使用此ant脚本,也应该使用正斜杠。)