如何在 Java EE 中使用 Wordnet?

How to use Wordnet in Java EE?

我遇到以下问题: 我目前正在做一个 Java EE 项目,我需要使用 wordnet 词典来搜索单词的同义词。

我在另一个 Java SE 项目中使用 JWI 2.4 测试了基本的 wordnet 功能。我需要的只是为我工作。但是问题来了:

我想将 wordnet 词典加载到内存中。为此,我首先用 JWI 导出了字典,并将导出的文件放入我的 java EE 项目的 ressources 文件夹中。然后我尝试用

获取文件
InputStream in = this.getClass().getClassLoader().getResourceAsStream(name)

有了这个,我就有了一个 InputStream。但是为了使用 JWI 创建内存字典,我需要一个文件对象或一个 url 对象。 我试图将输入流的内容写入临时文件,但这在 java EE 中是不允许的。

所以这是我的问题。如何将 wordnet 词典集成到我的 java EE 项目中?

感谢您的帮助 :) 非常感谢。

您可以使用 getResource 检索资源的 URL。 此 URL 也可能指向 JAR、WAR 或 EAR 中的资源文件。

 URL resourceUrl = this.getClass().getClassLoader().getResource(name);

因此,如果您将文件放入部署工件(jar、ear、war),您也可以在 JEE 环境中访问它们。

如果您的 WorldNet 库中 URL 没有额外的限制,您可以创建内存字典。

参见 Accessing Resources