将.app/.exe文件与Adobe Air应用程序捆绑并执行

4
我正在开发一个Air应用程序,该应用程序使用.app/.exe文件作为硬件设备的桥梁。
理想情况下,我希望将可执行文件包含在Air应用安装程序中,并与Air应用一起启动外部程序。
1)这是否可能? 2)如何决定要启动哪个特定操作系统文件?
编辑:好吧,上面的内容并不是很困难。
var file:File = File.applicationDirectory;
file = file.resolvePath("src/assets/NativeApps");

if (Capabilities.os.toLowerCase().indexOf("win") > -1) {
    file = file.resolvePath("Windows/echoTestWin.exe");
}
else if (Capabilities.os.toLowerCase().indexOf("mac") > -1) {
    file = file.resolvePath("Mac/echoTestMac.app");
}

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = file;
var process = new NativeProcess();
process.start(nativeProcessStartupInfo)

但是为什么会出现这个错误信息呢?

参数错误:错误#3214:NativeProcessStartupInfo.executable未指定有效的可执行文件。

难道 .app 扩展名不是有效的吗?


1
你尝试过不带.app扩展名吗?像这样file.resolvePath("Mac/echoTestMac")?我个人从来没有用过AIR中的NativeProcess功能,但一般来说,在Mac OS中,对于应用程序来说省略扩展名是很常见的。 - Lars Blåsjö
1
Lars,感谢您的输入。然而,应用程序扩展似乎起作用了:trace(file.exists)=> true - 因此它显然找到了某些东西... - dani
2个回答

7

.app实际上是一个文件夹。要访问其中的可执行文件,您需要引用YourApp.app/Contents/MacOS/YourApp


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接