2012-01-05 55 views
1

我一直在开发ActionScript应用程序半年左右。据我所知,mxmlc编译器只是一个sh脚本,以更方便的方式调用javac - {options}。这给了我一个想法,我的源代码被编译为本地 java字节码。为什么flashplayer不需要JVM?

从以上所有我可以得出结论,无论是Flash Player应该需要安装JVM或者是JVM本身。或者,也可以像其他编译器一样使用Java来生成Adobe自定义二进制文件,但Java是跨平台和行业标准的,所以为了避免可移植性问题,Adobe(Macromedia)可以选择用于ActionScript/Flex。

你能解释一下吗?

+0

'java - {options}',你的意思是'javac - {options}'?我很怀疑ActionScript是否编译为java字节码。您可以在mxmlc编译器中发布脚本行,这会让您断言“源代码已编译为本机java字节码” – 2012-01-05 14:26:48

+0

对不起,错误类型,javac。这就是为什么我认为就像Groovy,Scala,J {Ruby,Python,smth}它应该在JVM上运行(也许不是Oracle的原始JVM或来自OpenJDK的JVM) – mie 2012-01-05 14:43:37

回答

7

ActionScript的开发环境是用Java编写的,但编译ActionScript不会导致Java兼容的二进制文件。而是编译为在ActionScript虚拟机上运行的二进制文件。所以Flash Player有一个虚拟机,但它不是Java相关的。

+0

这确实是答案,很简单。 (您还将'java',Java运行时和'javac',Java编译器混合在一起。)如果编译器是用Python编写的,它将被调用'python ...',但仍然不会导致Python码。 – AKX 2012-01-05 14:25:26

+0

然而,人们应该认识到,拥有一种flex-on-java可能是一件好事,现在flex将变得更加开源。 – Riduidel 2012-01-05 14:25:34