试图运行ant - 获取错误

时间:2009-12-20 12:47:01

标签: java ant

我刚刚安装了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。

任何帮助都非常感激。

4 个答案:

答案 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

注意:在https://web.archive.org/web/20120327204229/http://sray.squidpower.com/2010/01/13/solution-to-error-running-mxmlcexe-with-windows-64bit-jvm/

找到解决方案

答案 3 :(得分:0)

令我惊讶的第一部分是它尝试使用服务器JVM而不是常规服务器JVM,但这可能是您构建的一个功能。我要尝试的第二件事是运行ant -v而不是普通的蚂蚁。这应该会给你更多的输出,并希望有更多关于蚂蚁在这个时间点尝试做什么的信息。