如何在Eclipse项目中包含.class文件?(Java)

27

大家好。我正在为学校的一个项目工作,其中我们只有.class文件而没有源代码,并需要将其包含在我们的代码中。我正在使用Eclipse,并希望在我的项目中包含这个文件,以便可以从中实例化对象并使用它。

该文件是TokenizerImpl.class,我想像这样使用它:

TokenizerImpl tokenizer = new TokenizerImpl(foo);

我将文件放在项目文件夹中,但Eclipse说“TokenizeImpl无法解析为类型”,我认为这意味着它找不到类或源代码。我试着把它放在项目的"bin"文件夹中,但得到了同样的错误。谷歌搜索和SO搜索似乎没有回答这个问题,所以我会试试看。聪明人们,我应该怎么做?

编辑:哦,亲爱的,我发现问题完全是其他原因。这些解决方案很好用,但我只是忘了创建Tokenizer接口,TokenizerImpl实现了它。谢谢你们所有人的帮助,我确实学到了很多关于Eclipse的知识。

6个回答

40

如果一个目录包含类文件,并且该目录位于您的Eclipse项目中,无论是在生成的目录中还是您创建的目录中,都可以将其添加到Eclipse项目中。

这可以通过将类文件夹添加到应用程序的Java构建路径来完成。您可以在项目属性中设置此项,方法是访问Java Build Path -> Libraries -> Add Class Folder。请记住,您必须指定包含类文件的根文件夹。

因此,如果您希望编译器访问在项目A的classes目录下存在的com.stackoverflow.Example.class(但不在项目A的构建路径中),那么您应该将“classes”作为类文件夹添加,而不是将“classes / com / stackoverflow”作为类文件夹添加。


2
请记住,您需要指定包含类文件的根文件夹。+1 - Mr_and_Mrs_D

15

项目 -> 属性 -> Java构建路径 -> 库 -> 添加外部类文件夹

文件夹必须包含一个包层次结构,即如果您的类真的是foo.bar.TokenizerImpl,它必须在子目录foo/bar中。


1
您也可以将要添加的类文件打成JAR包并将其添加到构建依赖项中。在我看来,这是最清晰的解决方案。当然,JAR文件内部必须具有正确的目录结构。
右键单击项目,选择Java Build Path以添加新的依赖项。
将其复制到bin文件夹中不会很好地工作,因为它是用于保存已编译源代码的结果。只要清理任何东西,该文件就会消失。

0

其他人现在已经给出了更好的答案。这个“答案”主要是为了从OP那里获取信息,因为原始问题并没有完全告诉我们尝试了什么。现在有两个 答案可以长期回答这个问题。

我的原始答案保留在下面以供参考。

你是在Eclipse内部还是外部将它复制到bin文件夹中的?如果你是在Eclipse外部进行的操作,那么你必须右键单击“bin”文件夹并选择“刷新”,让Eclipse看到新文件。

在bin目录下适当的文件夹(取决于其包)中的*.class文件应该就可以了。


它在bin文件夹中,但是我需要做些什么才能将其添加到正确的包中吗?只需要将其放入包文件夹中,对吗? - Jamison Dance
如果它在包com.stackoverflow.javacode中,那么您将把类文件放入目录bin/com/stackoverflow/javacode/中。 - Eddie
注意:如果你清理工作区,那么你的 .class 文件将会消失! - Daniel Hiller
@dhiller:是的,这是真的。 - Eddie

0

或者将所有内容打包成一个 jar 文件,并将其作为外部 jar 文件添加。


0
将类文件夹压缩成zip格式。 在顶部工具栏中突出显示项目名称,单击“项目”,点击“属性”,点击“库”选项卡,单击“添加外部JAR”,添加压缩文件。

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