Macos 如何在ant copy任务中保留exec文件

Macos 如何在ant copy任务中保留exec文件,macos,ant,file-copying,Macos,Ant,File Copying,我已经使用Ant为MacOSX创建了JavaFXbundle。它使用两个文件创建包- 1.MyApplication.app 2.MyApplication.dmg 我希望将这两个文件复制到另一个文件夹中,所以我在build.xml中编写了如下命令- <copy todir="my_new_folder"> <fileset dir="old_folder\bundles"/> </copy> 它将在“我的新文件夹”中成功复制这两个文件。但在运行“

我已经使用Ant为MacOSX创建了JavaFXbundle。它使用两个文件创建包- 1.MyApplication.app 2.MyApplication.dmg

我希望将这两个文件复制到另一个文件夹中,所以我在build.xml中编写了如下命令-

<copy todir="my_new_folder">
   <fileset dir="old_folder\bundles"/>
</copy>

它将在“我的新文件夹”中成功复制这两个文件。但在运行“my_new_folder”中的.app时,不会启动我的应用程序,尽管它是从“old_folder”正确启动的

在比较复制的应用程序时,我发现On exec(Unix可执行文件)位于MacOS文件夹(“显示软件包内容/内容/MacOS”),没有保留,其类型在文档文件中一直在更改

如何将其保存到Unix可执行文件中,因为我只是在执行简单的复制目录

谢谢, Neelam Sharma

如ant copy任务中所述:


Unix注意:复制文件时不保留文件权限;它们以默认的UMASK权限结束。这是由于缺乏在当前Java运行时中查询或设置文件权限的任何方法造成的。如果需要保留权限的复制功能,请改用此功能:


因此,在您的情况下,将
替换为:

<exec executable="cp">
    <arg line="-R old_folder/bundles my_new_folder"/>
</exec>


(请注意,即使此ant脚本在Windows下使用,也应使用前斜杠)。

非常感谢:)它可以工作,我们必须结束args标记,否则一切正常。我在使用exec命令复制时发现一些文件显示某些文件的“权限被拒绝”,如何解决?“缺少在当前Java运行时中查询或设置文件权限的任何方法"? 我称之为胡说八道,Java 7已经过时很久了。@Trejkaz如果Ant没有在Java 7下运行呢?那么他们可能会退回到Java 6下表现出来的行为。我的评论是,他们说当前的Java运行时,似乎在所有这些情况下都是不可能的。
<exec executable="cp">
    <arg line="-R old_folder/bundles my_new_folder"/>
</exec>