最近做项目遇到了这个纠结问题,找了很多方法都不行,最终根据网上提供的方法找到了一种解决办法,特此与大家分享。
主要代码:
import flash.desktop.NativeProcess;
import flash.desktop.NativeProcessStartupInfo;
import flash.filesystem.File;
import mx.controls.Alert;
public class ProcessControl
{
public function ProcessControl()
{
}
//url为外部应用程序的路径
public static function executeURL(url:String):void{
var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = new File(url);
info.executable = file;
var pro:NativeProcess = new NativeProcess();
pro.start(info)
}
}
NativeProcess是air2.0提供的类,我用的sdk是4.5.1,当在flashBuilder中测试的时候会报错:
Error: Error #3219: The NativeProcess could not be started. 'Not supported in current profile.'
at Error$/throwError()
at flash.desktop::NativeProcess/start()
at ygz.process::ProcessControl$/executeURL()[E:\project\flex\fireTest\src\ygz\process\ProcessControl.as:20]
at RootMenu/btnHandler()[E:\project\flex\fireTest\src\RootMenu.mxml:49]
这个错误可以在配置文件中添加<supportedProfiles>extendedDesktop</supportedProfiles> 这一行解决掉,但是在发布的时候一定要把这一行删掉,删掉后如果不能发布
那是人品问题。发布后要将air文件转换成exe程序,转换方法如下:
1.先配置系统环境变量path:C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.5.1\bin 这样就可以用adt命令(首先确定你的机子上是否安装了jdk)
2.使用命令行找到你air程序存放路径输入以下命令:
adt -package -target native setup.exe 【你自己的air文件名】.air
这样就生成了一个 setup.exe 安装文件
运行 setup.exe就可以了。