Java can';在类中找不到现有的方法
我已经用Ant1.9.1构建了jar存档 当我从中启动类时,我得到以下异常:Java can';在类中找不到现有的方法,java,ant,Java,Ant,我已经用Ant1.9.1构建了jar存档 当我从中启动类时,我得到以下异常: Caused by Java exception: java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput.setChecked(Z)V at com.blablabla.kats.drivers.CheckBox.check(CheckBox.java:57) at sun.re
Caused by Java exception: java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput.setChecked(Z)V
at com.blablabla.kats.drivers.CheckBox.check(CheckBox.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.blablabla.kats.utils.Operation.doInvoke(Operation.java:142)
at com.blablabla.kats.utils.Operation.invokeMethod(Operation.java:117)
at com.blablabla.kats.model.handles.ElementOperationHandle.invokeOn(ElementOperationHandle.java:33)
at com.blablabla.kats.model.statements.DirectAction.execute(DirectAction.java:45)
at com.blablabla.kats.model.StatementSequence.executeStatement(StatementSequence.java:74)
at com.blablabla.kats.model.StatementSequence.doExecute(StatementSequence.java:50)
at com.blablabla.kats.model.Procedure.call(Procedure.java:46)
at com.blablabla.kats.model.statements.Invocation.execute(Invocation.java:48)
at com.blablabla.kats.model.StatementSequence.executeStatement(StatementSequence.java:74)
at com.blablabla.kats.model.StatementSequence.doExecute(StatementSequence.java:50)
at com.blablabla.kats.model.TestCase.execute(TestCase.java:41)
at com.blablabla.kats.model.TestSuite.execute(TestSuite.java:45)
at com.blablabla.kats.model.TestProgram.execute(TestProgram.java:40)
at com.blablabla.kats.Main.main(Main.java:158)
当我用javac编译“com.blabla.kats.drivers.CheckBox”类并替换jar中的相应文件时,一切正常。
我使用HTMLUnit2.12
java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
对应的Ant任务:
<path id="classpath.libraries">
<fileset dir="${basedir}/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="compile">
<javac srcdir="${basedir}/src/java" destdir="classes" debug="true" source="1.5" target="1.5">
<classpath refid="classpath.libraries" />
</javac>
</target>
${basedir}/lib包含很多jar主要是 kats.jar-我的项目,包含com.blabla.kats.drivers.CheckBox
htmlunit-2.12.jar-其中com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput.setChecked(Z)是。
为什么会发生这种情况?我看到的唯一区别是,您使用的是ant脚本中的1.5,而查看java版本时,您使用的是java6来运行它。我不确定这是否会有很大的不同,因为它应该是向后兼容的,但还是尝试一下。在ant build.xml中将此版本更改为1.6,我发现我没有删除旧的编译类。
当我清理编译后的类时,所有的类都工作得很好。你在
classpath.libraries中有什么。主要是kats.jar-我的项目,包含com.blablabla.kats.drivers.CheckBox htmlunit-2.12.jar-其中com.gargoylesoftware.htmlunit.html.htmlcheckboxiput.setChecked(Z)是