Java Eclipse无法识别导入的JAR文件中的方法。为什么不呢?

Java Eclipse无法识别导入的JAR文件中的方法。为什么不呢?,java,eclipse,import,jar,buildpath,Java,Eclipse,Import,Jar,Buildpath,我正在使用Eclipse为我的工作更新一些Java代码。在这个项目中,有一个JAR文件,存储在项目文件夹中的“resources”文件夹中,由主类导入。这个JAR文件包含一个我们需要在另一个类中使用的类。因此,import语句如下所示: import pkg.Class.InnerClass; package pkg; import ...; public class Class { public class InnerClass { public void s

我正在使用Eclipse为我的工作更新一些Java代码。在这个项目中,有一个JAR文件,存储在项目文件夹中的“resources”文件夹中,由主类导入。这个JAR文件包含一个我们需要在另一个类中使用的类。因此,import语句如下所示:

import pkg.Class.InnerClass;
package pkg;

import ...;

public class Class {

    public class InnerClass {

        public void setState( boolean paramBoolean ) {

            ...

        }

        public void setOtherState( boolean paramBoolean ) {

            ...

        }

    }

}
为了保密,我不能把名字放在网上。这个内部类有一个方法,我们称之为setStateboolean。在我们的主课中,我们需要使用这个方法。。。但当我输入时,调用下面会出现一条红线,并显示错误消息

"The method setState(boolean) is undefined for the type Class.InnerClass."
这显然是错误的!InnerClass中的几乎所有其他方法都工作得很好,这似乎只是这个特定类的一个错误。我已经检查并再次检查了构建路径配置,没有任何异常。我无法更改JAR文件,但我可以使用反编译器插件查看内容。有人知道我不知道的事情吗,或者有人以前遇到过这个问题,并且能够以某种方式解决它吗

编辑:下面是Class.java文件的草图:

import pkg.Class.InnerClass;
package pkg;

import ...;

public class Class {

    public class InnerClass {

        public void setState( boolean paramBoolean ) {

            ...

        }

        public void setOtherState( boolean paramBoolean ) {

            ...

        }

    }

}

这里有一个测试来确定问题是与Eclipse有关,还是与JAR文件有关

退出Eclipse并启动您喜爱的文本编辑器。 编写一个使用内部类中缺少的方法的小测试类。 使用javac命令从命令行编译它,JAR位于编译类路径上。 然后将它复制到Eclipse工作区中,并尝试在那里编译它。
这将为您提供一些有关问题所在的线索。

setStateboolean私有吗?因为我们看不到您的生成路径配置,这也是一个问题。您能告诉我们如何在Class.InnerClass上调用setState方法吗?1。setStateboolean是公共的,其他公共方法也可以正常工作。2.我假设构建路径不是问题所在,因为内部类中的其他方法工作正常。3.当然:InnerClass obj=新的InnerClass;obj.setStatetrue;单击包编辑器中的“带有编辑器的链接”图标按钮。然后在包含源代码的Java编辑器中选择InnerClass导入,右键单击并选择Open Declaration。在包资源管理器中检查它选择的类文件是否在您期望的jar中。您的构建路径中可能有两个JAR,它们都包含相同的类,但版本不同。奇怪的是,我从未让javac命令在这台计算机上独立工作,所以我从未尝试过。但这是另一天的问题。哈哈哈。你需要有C:\ProgramFiles\Java\jdkx.x.x\bin;在PATH环境变量中,使其工作。