我刚刚安装了ant和JDK 6,我正在尝试运行一个ant任务。我得到以下内容:
C:\Users\Giles Roadnight\workspace\Parsley\build>ant compile_spicelib_complete_flex
Buildfile: build.xml
compile_spicelib_complete_flex:
[exec] Error loading: C:\Program Files\Java\jdk1.6.0_17\jre\bin\server\jvm.dll
[exec] Result: 6
BUILD SUCCESSFUL
Total time: 0 seconds
C:\Users\Giles Roadnight\workspace\Parsley\build>
该文件 - jvm.dll肯定存在。我尝试以相同的结果作为管理员运行。
要安装,我运行了JDK安装程序(我已经安装了JRE),我在环境变量中设置了JAVA_HOME。 我解压缩了ant并将我的ant bin目录添加到了PATH。
我对Java一无所知,以及它是如何运作的,所以对此有点失落。
我在64位Windows 7.我下载了64位JDK。
任何帮助都非常感激。
答案 0 :(得分:11)
你必须将你的flex解压缩到某个文件夹。我将此文件夹称为flex_sdk。
将flex_sdk添加到FLEX_HOME环境变量(如有必要,创建环境变量)。 Flex编译器需要32位JRE,因为目前不支持64位JRE。为此,首先下载一个32位(或X86)版本的jdk,然后将flex sdk指向它。为此,您需要编辑位于FLEX_HOME \ bin中的jvm.config文件。在jvm.config中,将java.home设置为32位JDK的位置,如图所示。(注意,这些不是反斜杠)
示例:java.home=C:/Program Files (x86)/Java/jdk1.6.0_25
或者,您也可以添加名为JAVA_HOME
的环境变量,如果找不到jvm.config文件,请将其指向上述位置。
/ 我遇到了同样的问题,并研究了几天。尝试了100多个类路径和大量已损坏的注册表问题。上述解决方案似乎对我有用。如果它也适合你,请告诉我 /
-Prasad K
答案 1 :(得分:4)
在我看来,好像ant脚本正在运行本机程序,而本机程序又试图加载JVM来运行一些java代码,并且失败了。我猜想32位和64位之间存在不匹配。在这个理论中,你试图运行的软件包是使用32位Windows可执行文件,它无法使用LoadLibrary 64位JVM DLL。
一个更简单的解释是,Java宇宙中的许多东西都会被路径名上的空格所迷惑。尝试在没有嵌入空格的路径名中安装JDK。
答案 2 :(得分:2)
您可以通过在flex-sdk bin目录中创建一个bat文件来解决此问题:
"%JAVA_HOME%\bin\java.exe" -Xmx384m -Dsun.io.useCanonCaches=false -jar "%~dp0\..\lib\mxmlc.jar" +flexlib="%~dp0\..\frameworks" %*
然后调用此bat文件而不是mxmlc.exe
找到解决方案答案 3 :(得分:0)
令我惊讶的第一部分是它尝试使用服务器JVM而不是常规服务器JVM,但这可能是您构建的一个功能。我要尝试的第二件事是运行ant -v
而不是普通的蚂蚁。这应该会给你更多的输出,并希望有更多关于蚂蚁在这个时间点尝试做什么的信息。