2012-01-05 60 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