您如何将这个伟大的新 API 与 Java 结合使用?您是否仅使用纯本机流程 API,例如 nativeProcess.standardInput.write() 和 nativeProcess.standardOutput.read(),您无法使用它们来调试 Java 端,也不能调用远程 Java 方法。或者您正在使用一些利用远程方法调用的库,例如 flerry lib,但也无法调试 Java 端?或者,也许您正在使用可以调试但不能远程调用 Java 方法的 Merapi?我问这个是因为这可能是关于这个 API 及其易用性的最重要的问题。
5 回答
您可以使用Flerry启动 Java 进程并与之通信。
两者都使用后,您可以使用 MerAPI 或 NativeProcess API 调试 JVM。在 AIR2.0 之前,我使用 merapi 通过网络与 java 进程通信。
我现在更喜欢使用 NativeProcess 启动器,使用 MerAPI 我们正在破解丑陋的编组代码。调试网络负载是通过 merapi 进行的。
使用 NativeProcess API 很容易 -
var myForkedExe:NativeProcessStartupInfo = new NativeProcessStartupInfo(); myForkedExe.executable = ; ...
我不确定我理解你的意思是不能用 merapi 调用远程 Java 方法。这正是我一直在做的。调试很简单,只需设置 JPDA 参数并附加任何 JAVA 调试器。
您可以使用var file:File = new File("/usr/bin/java");
参数向量并将参数传递给 Java 文件。例如
var arguments:Vector.<String> = new Vector.<String>;
arguments.push("-jar");
听起来您的保留与能够调试 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 应用程序一样进行逐行调试。
-拉吉
您可以使用它NativeProcess
来执行java.exe
并传递正确的参数来执行 java 应用程序。
您不能使用NativeProcess
从 jar 文件中运行随机 java 代码。