我已经使用 Ant 为 Mac OS X 创建了 Java FX 包。它创建包含两个文件的包 -
1.我的应用程序
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 文件夹(“Show Package Contents/Contents/MacOS”)没有保存,它的种类在文件文件中发生了变化。
如何保存其种类到 Unix 可执行文件 因为我只是在执行简单的复制目录。
谢谢,
尼拉姆·夏尔马
最佳答案
如 Ant 复制任务 guide 中所述:
Unix Note: File permissions are not retained when files are copied; they end up with the default UMASK permissions instead. This is caused by the lack of any means to query or set file permissions in the current Java runtimes. If you need a permission-preserving copy function, use this instead:
<exec executable="cp" ... >
因此,在您的情况下,请替换
<copy>
和:<exec executable="cp">
<arg line="-R old_folder/bundles my_new_folder"/>
</exec>
(注意你应该使用正斜杠,即使这个 ant 脚本是在 Windows 下使用的)。
关于macos - 如何在ant复制任务中保留exec文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14603625/