Java - Flex 4 AIR 2.0 native 进程

标签 java air process flex4

我正在使用 Flex 4 Native Process 与 Java 交互,以使用 PHP 连接到远程服务器。

我尝试了在互联网上找到的这个示例,将 Flex 与 Java 连接起来:

弹性:

    protected function windowedApplication1_creationCompleteHandler(event: FlexEvent): void
        {
            var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
            info.executable = new File("C:/Program Files/Java/jre6/bin/java.exe");
            info.workingDirectory = File.applicationDirectory;

            var args: Vector.<String> = new Vector.<String>();
            args.push("-cp", "../bin", "scanner.Main");
            info.arguments = args;
            process = new NativeProcess();
            process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onDataOutput);
            process.start(info);
        }

        private function onDataOutput(event: ProgressEvent): void 
        {
            var message:String = process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable);
            Alert.show(message);
        }

Java:

public static void main(String[] args)
{
    String input;
    Scanner scanner = new Scanner(System.in);
    while (scanner.hasNext("hello|stop"))
    {
        input = scanner.next();
        if (input.equals("hello"))
        {
            System.out.println("hello flex! ... from java");
        }
        else if (input.equals("stop"))
        {
            return;
        }
    }
}

而且效果非常完美。

但是当我尝试调用连接到远程服务器的Java方法时,切换行 System.out.println("hello flex! ... from java");对于方法的名称,它会死亡(不执行任何操作)。

我对 native 进程概念不熟悉,但在网上研究时我发现您需要将库作为项目使用的参数发送。

我需要一些关于如何执行此操作的帮助。

Java 项目使用 Http 和 JSONon 库。 我如何将它们添加到参数中?我还需要添加 JRE 系统库吗?

PS:如果我从 eclipse 执行 java 方法,它就可以正常工作。

谢谢。

编辑:用 Jar 文件尝试过

    var file:File = new File("C:/Program Files/Java/jre6/");
            file = file.resolvePath("bin/javaw.exe");

            var arg:Vector.<String> = new Vector.<String>;
            arg.push("-jar");
            arg.push(File.applicationDirectory.resolvePath("prueba3.jar").nativePath);
            arg.push("-Djava.library.path=C:\\Users\\Administrador\\Desktop\\libhttp");

            var npInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
            npInfo.executable = file;
            npInfo.arguments = arg;

            process = new NativeProcess();          
            process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onStandardOutputData);
            process.start(npInfo);

并添加库路径,但仍然不起作用。

最佳答案

您可以创建一个 AMFPHP 服务,并使用 AS3 直接连接到 PHP

关于Java - Flex 4 AIR 2.0 native 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692013/

相关文章:

android - netstream 无法在 adobe air - amazon s3 - signed cloudfront 上运行

apache-flex - 绑定(bind)到对象属性

linux - 逻辑地址(虚拟地址空间)而不是物理地址空间的原因

go - 在 Go 中查找隐藏的矿工(隐藏窗口 + 命令行)

java - AspectJ + @Configurable

java - 什么是NullPointerException,我该如何解决?

css - 在 Flex3 Air 中创建和编辑 CSS

linux - 如何在另一个 linux 终端中结束一个进程

java - 从 java 中的另一个类获取 JPanel 对象的大小

java - 自动设置 Java 选项 Xmx