MXMLC 和 64位 JRE

29

有没有解决方案能够让Flex编译器在64位JRE上运行?如果我在Eclipse的Ant buildfile中使用MXMLC任务,它可以正常工作。但是如果我尝试从命令行使用MXMLC(或在Eclipse中尝试Run…命令),它失败了,告诉我:

"Error loading: C:\Program Files\Java\jrrt-1.6.0\jre\bin\jrockit\jvm.dll"

(这是由于64位JRockit运行时引起的问题,但这并不重要)。

2个回答

85

目前还不支持使用64位JRE与Flex编译器。相反,您可以让编译器使用32位JRE。

为此,您需要编辑位于FLEX_HOME\bin中的jvm.config文件。在jvm.config中,将java.home设置为32位JRE的位置。如果您还没有32位JRE,请下载它。

例如:

java.home=C:/Program Files (x86)/Java/jre6
如果您喜欢这个答案,请点击左侧的上箭头。

6
显然斜杠很重要;反斜杠在我的 Windows 7 电脑上不起作用。 - Garret Wilson
我有同样的问题,但是32位JRE没有解决,我安装了32位JRE(1.8.0_25)并设置了主目录,但仍然相同。我的Flex版本是4.0.1。 - Lalith J.
1
这完全是不正确的。你不能使用*.exe存根,但你可以使用64位JRE。 - bebbo
1
我不明白为什么这篇回答会有这么多赞,因为它并没有回答问题。实际上是有一个解决方法的,请看@bebbo的正确答案。mxmlc只是一个Java jar文件,它并不关心你安装了哪个JVM。它之所以没有得到“支持”,只是因为Adobe认为这并不值得,因为99%的Flash安装仍然在32位浏览器中。 - Ryan Bemrose
如果在全局JAVA_PATH变量中指定了32位JRE的路径,则可以正常工作。如果在jvm.config文件中指定相同的路径,则无法正常工作。但是,最终还是能够正常工作 :) 谢谢! - Christopher Stock
对于需要的人,FLEX_HOME通常位于ECLIPSE_PATH\plugins\com.powerflasher.fdt.shippedflex_xxxx\flex。 - Yule

7
你可以使用任何64位Java,但你需要使用批处理文件来调用Java而非32位的EXE文件。在flex\bin文件夹中创建bat文件。
mxmlc.bat:
@echo off
for  %%i in (%0) do set FLEX_HOME=%%~dpi..
java -jar "%FLEX_HOME%\lib\mxmlc.jar" +flexlib="%FLEX_HOME%/frameworks" %*

compc.bat:

@echo off
for  %%i in (%0) do set FLEX_HOME=%%~dpi..
java -jar "%FLEX_HOME%\lib\compc.jar" +flexlib="%FLEX_HOME%/frameworks" %*

对于所有其他的flex *.exe文件,请重复以上步骤。

如有需要,请添加Java选项,例如:

java -Xmx2000m -XX:MaxMetaspaceSize=512m -jar "%FLEX_HOME%\lib\... ...

现在请使用以下命令代替原来的命令:

  • 使用mxmlc.bat代替mxmlx.exe
  • 使用compc.bat代替compc.exe
  • ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接