如何在Java中使用AIR 2.0 NativeProcess API?

时间:2010-06-18 01:03:08

标签: flex air actionscript-3 air2

如何在Java中使用这个出色的新API?您是否只使用纯粹的本机进程API,如nativeProcess.standardInput.write()和nativeProcess.standardOutput.read(),您无法调试Java端,也无法调用远程Java方法。或者您正在使用一些利用远程方法调用的库,例如flerry lib但是也无法调试Java端?或者您可能正在使用Merapi,您可以调试但无法远程调用Java方法?我问这个,因为这可能是关于这个API及其易用性的最重要的问题。

5 个答案:

答案 0 :(得分:0)

听起来您的预订与能够调试Java进程有关。这不是一个真正的问题。您可以使用NativeProcess API启动Java进程,其参数将使其可以从外部调试。例如:

var processArgs:Vector.<String> = new Vector.<String>();   
processArgs.push("-Xdebug");  
processArgs.push("-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n");  

这将允许您的Java进程可远程调试。然后,您可以在进程启动后从Eclipse或Netbeans连接到它。如果Java进程中的代码链接到活动的Eclipse / Netbeans项目,则可以像对待任何其他Java应用程序一样进行行式调试。

-Raj

答案 1 :(得分:0)

您可以使用NativeProcess执行java.exe并传递正确的参数来执行Java应用程序。

您不能使用NativeProcess从jar文件中运行随机java代码。

答案 2 :(得分:0)

使用它们后,您可以使用MerAPI或NativeProcess API调试JVM。 在AIR2.0之前,我使用merapi通过网络与java进程通信。

我更喜欢现在使用NativeProcess启动器,使用MerAPI我们是黑客攻击 丑陋的编组代码。通过merapi调试网络有效负载是一个引脚。

使用NativeProcess API很简单 -

var myForkedExe:NativeProcessStartupInfo = new NativeProcessStartupInfo(); myForkedExe.executable =; ...

我不确定我理解你的意思是不能用merapi调用远程Java方法。 这正是我一直在做的事情。调试很简单,只需设置JPDA args并附加任何JAVA调试器。

答案 3 :(得分:0)

您可以使用Flerry启动并与Java进程通信。

答案 4 :(得分:0)

您可以使用var file:File = new File("/usr/bin/java");并使用参数Vector将参数传递给Java文件。 E.g。

var arguments:Vector.<String> = new Vector.<String>;
arguments.push("-jar");