要使用 JAWS,需要在应用程序中指定 WordNet 数据库目录,如下所述:http: //lyle.smu.edu/~tspell/jaws/。
System.setProperty("wordnet.database.dir", "resources/WordNet-3.0/dict/");
这在 IDE 中运行良好。但未编译为 .jar 文件。因此,需要 .jar 文件中 WordNet 目录的相对路径。已经尝试了各种方法。最后一个是:
String url = this.getClass().getClassLoader()
.getResource("resources/WordNet-3.0/dict/index.sense").toExternalForm();
url = url.substring(0, url.length() - 12);
从 .jar 文件中测试的结果是:
jar:file:/C:/file/path/jar.jar!/resources/WordNet-3.0/dict/
认为这将是解决方案,但是在运行 .jar 时仍然找不到目录,或者更确切地说是 index.sense 。index.sense 应该通过以下方式加载:
WordNetDatabase database = WordNetDatabase.getFileInstance();
它使用指定的目录。找到了几个线程,但没有任何建议有效。例如:
如何获取正在运行的 JAR 文件的路径? 如何在 Java JAR 文件中获取资源的路径 加载相对于正在执行的 jar 文件的文件