title: Execute Shell Script from Flex for mac os
body: <p>I am dealing here with NativeProcess and specificly with commands in mac os.So, i have a .sh file in same directory as my application.By this shell script i am trying to execute a .jarfile (same directory as well). Somehow i am doing some mistake thats why it didn't work.</p>
  
  <p>my code is next</p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="utf-8"?&gt;
      &lt;s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                             xmlns:s="library://ns.adobe.com/flex/spark" 
                             xmlns:mx="library://ns.adobe.com/flex/mx"
                             creationComplete="init()"&gt;
          &lt;fx:Declarations&gt;
              &lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;
          &lt;/fx:Declarations&gt;
          &lt;fx:Script&gt;
              &lt;![CDATA[
                  import mx.controls.Alert;
                  var process:NativeProcess;
                  private function init():void
                  {
                      if (NativeProcess.isSupported) 
                      {
                          Alert.show("suport native process.");
                               setupAndLaunch();
                      }
                  }
                  private function setupAndLaunch():void
                  {
                   var cmdFile:File = File.applicationDirectory.resolvePath("InvokeJar.sh");
                   Alert.show(cmdFile.nativePath,".Sh File Path");
                   var processArgs:Vector.&lt;String&gt; = new Vector.&lt;String&gt;; 
                   processArgs.push('chmod -x "'+cmdFile.nativePath+'"');
  
                      var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
                  nativeProcessStartupInfo.arguments = processArgs;
                  nativeProcessStartupInfo.executable = cmdFile;
                  nativeProcessStartupInfo.workingDirectory = File.applicationDirectory;
  
                      process = new NativeProcess();
                      process.start(nativeProcessStartupInfo);
                      process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
                      process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
                      process.addEventListener(NativeProcessExitEvent.EXIT, onExit);
                      process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
                      process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);
                  }
  
                  public function onOutputData(event:ProgressEvent):void
                  {
                      trace("Got: ", process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable)); 
                  }
  
                  public function onErrorData(event:ProgressEvent):void
                  {
                      trace("ERROR -", process.standardError.readUTFBytes(process.standardError.bytesAvailable)); 
                  }
  
                  public function onExit(event:NativeProcessExitEvent):void
                  {
                      trace("Process exited with ", event.exitCode);
                  }
  
                  public function onIOError(event:IOErrorEvent):void
                  {
                      trace(event.toString());
                  }
              ]]&gt;
          &lt;/fx:Script&gt;
      &lt;/s:WindowedApplication&gt;
  </code></pre>
  
  <p>next is shell scripting part</p>
  
  <pre><code>java -jar Test.jar
  </code></pre>
  
  <p>when i am testing this app on a mac system, app display alert box (regards .sh File Path) but nothing else happening next.  </p>
  
  <p>There is not much to walk on when working with NativeProcesses.if you see anything wierd or wrong,please let me know.</p>
  
  <p>Thank you</p>