尝试运行Ant - 出现错误

5

我刚刚安装了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。
非常感谢您的任何帮助。

请尝试运行 ant --projecthelp 或类似的命令,以创建一个更简单的测试案例! - Carl Smotricz
1
另外,请尝试不要设置JAVA_HOME。ant.bat应该足够聪明,可以在没有帮助的情况下找到您的jvm。(这不是一个修复,仅用于获取有关问题的更多信息) - Carl Smotricz
首先,请尝试运行java -version命令,看是否会出现错误。 - tangens
请提供 ant -debug compile_spicelib_complete_flex 的相关输出。 - Ronald Blaschke
4个回答

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 或者,如果您找不到jvm.config文件,还可以添加一个名为JAVA_HOME的环境变量,并将其指向上述位置。

/我也遇到了同样的问题,研究了几天。试过无数个类路径和大量损坏的注册表问题,上述解决方案似乎对我有效。如果对您也有用,请告诉我/

-Prasad K


5
在我看来,Ant脚本正在运行一个本地程序,该程序尝试加载JVM以运行一些Java代码,但是失败了。我猜测这是32位和64位之间不匹配的问题。在这种情况下,您正在尝试运行的软件包使用的是32位Windows可执行文件,该文件无法LoadLibrary 64位JVM DLL。
另一个更简单的可能解释是,Java宇宙中的许多事物都会因路径名中的空格而变得混乱。请尝试在没有嵌入空格的路径名中安装JDK。

这是我的问题。我下载了32位的JDK并将其安装在不同的目录中。请确保取消选中安装公共JRE的选项,否则可能会破坏您的系统。 - Kip

2

作为一项警示:截至2012年7月18日,Google安全浏览器正在对上述URL发出警报,出于谨慎起见,我没有尝试进一步操作。 - darpified

0
让我感到惊讶的第一部分是它尝试使用服务器JVM而不是常规JVM,但这可能是您构建的一个特性。我建议尝试运行ant -v而不是普通的ant。这应该会给您更多的输出,并希望能够提供有关此时ant正在尝试做什么的更多信息。

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