错误! 第一个参数的非静态Java函数“取代”不是一个有效的对象引用(Error! The fi

2019-06-24 11:21发布

我试图让蚂蚁在Eclipse中创建一个JUnit测试的HTML报告,但之后我创建Ant构建我碰到下面的错误,当我运行它:

[junitreport] Processing C:\Documents and Settings\Administrator\workspace\Home\junit\TESTS-TestSuites.xml to C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\null785926900
[junitreport] Loading stylesheet jar:file:/C:/ANT/apache-ant-1.8.3/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl
[junitreport] : Error! The first argument to the non-static Java function 'replace' is not a valid object reference.
[junitreport] : Error! Cannot convert data-type 'void' to 'reference'.
[junitreport] : Fatal Error! Could not compile stylesheet
[junitreport] Failed to process C:\Documents and Settings\Administrator\workspace\Home\junit\TESTS-TestSuites.xml

我需要做什么做解决这一问题?

这里是我的build.xml我试图运行区段:

<target name="Home">
    <mkdir dir="${junit.output.dir}"/>
    <junit fork="yes" printsummary="withOutAndErr">
        <formatter type="xml"/>
        <test name="Home" todir="${junit.output.dir}"/>
        <classpath refid="Home.classpath"/>
    </junit>
</target>
<target name="junitreport">
    <junitreport todir="${junit.output.dir}">
        <fileset dir="${junit.output.dir}">
            <include name="TEST-*.xml"/>
        </fileset>
        <report format="frames" todir="${junit.output.dir}"/>
    </junitreport>
</target>

Answer 1:

当我得到这个错误,我不得不右键点击在Eclipse我的build.xml文件,选择“运行方式Ant构建...”选项(第一个菜单),然后单击JRE选项卡,然后在“运行同样作为JRE工作空间”选项,然后继续运行该脚本。 出于某种原因,这个固定的问题。 老实说,我不知道为什么。



Answer 2:

Eclipse的bug是明确记载的Bug 384757 。 分析表明,甲骨文推出的bug。 我需要的Java版本7,但JunitReport需要Java 5的版本和Java版本6月初版本最明显的方法是将“引导类路径”的说法加入Ant任务junitreport而Java的问题是由甲骨文公司在未来的版本中修复。 不幸的是Ant任务junitreport不支持引导类路径选项。 这是不是人们蚂蚁配套可以做?



Answer 3:

运行我的java程序,而在Ubuntu 12.04与*的Java 1.7.0_51 *基于Eclipse SDK朱诺我遇到了这种情况。 我把它使用Apache-ANT-1.9.2,而不是Bhagyaraj的建议。 (PS的Eclipse朱诺的默认蚂蚁版本是* org.apache.ant_1.8.3 *,和我使用的Apache-ANT-1.9.3)

你可以按照我的步骤来设置。

  1. 下载apache-ant-1.9.3-bin.zip并解压到你想要的地方。
  2. 打开您的Eclipse并选择窗口 - >首选项
  3. 你可以看到Preferences窗口。 在左侧请蚂蚁 - >运行
  4. 现在集中在窗口的右侧现场。 确保你现在Classpath选项卡上,选择Ant主项(默认值),其上是蚂蚁首页右侧.The按钮...现在是可点击的。
  5. 毫无疑问,点击Ant主...按钮,选择您的ANT-1.9.3的文件夹。 在这一步中,如果选择错误的文件夹时,Eclipse可能会显示错误消息像蚂蚁指定家里不包含一个“lib”目录 。 如果你选择正确的目录,Ant主项(默认)将成为** Ant主项()
  6. 不要忘记点击应用。

变更后的,而你对上build.xml文件,单击并选择运行 - > 1个Ant构建,该错误信息不会显示,因为你的蚂蚁,现在是1.9.3。

我也下载Apache-ANT-1.8.4运行我的生成文件,但无法得到解决的错误。



Answer 4:

我用jdk1.6.45和最新版的Apache-ANT-1.9.2-BIN \

问题解决了。

作为每注上MikeBach

这是错误#,请阅读: https://bugs.eclipse.org/bugs/show_bug.cgi?id=384757在蚂蚁固定。

问候,Bhgyrj



Answer 5:

如果您使用的是带有JDK 1.7的Eclipse / JUnit的报告,请使用JDK 1.6。 有一个在JDK 1.7类似于你的描述的Eclipse / JUnit的报告中的错误。 这可能是一个类似的报告: https://netbeans.org/bugzilla/show_bug.cgi?id=201022



Answer 6:

我已经使用了几个不同的JRE / JDK设置(所有1.6和1.7),为每个各种问题(这或不能使用XSL文件中的罐子)尝试。

这显然不是一个完美的解决方案,但我似乎并没有碰到这些问题如果JUnit的报告是在构建文件“原始” - 不是裹着目标。

解决方法显然差在目标是Ant的一个重要方面,但有时用于报告构建目标/依赖不那么关键任务。 这与其说是对我的一个问题却是因为我跑在kindof一次性时尚,而不是作为构建的一部分,这些报告。



Answer 7:

错误已在Java的7U5介绍根据此评论 。 另一种意见说明如何解决办法是,改变引导类路径 。 ( 免责声明 :我没有尝试和测试这一点。)

该解决方案,但是,对我来说工作得很好:

  • 下载Ant-1.9.4
  • 日食>>首>>蚂蚁>> >>运行AntHomeEntries
  • 删除所有1.8.x的类路径条目
  • 添加所有的库从1.9.4代替

根据蚂蚁的变化 ,这已被固定自从1.9.1



文章来源: Error! The first argument to the non-static Java function 'replace' is not a valid object reference