繁体   English   中英

RandomAccessFile读取Jar文件中的文件

[英]RandomAccessFile to read files in a Jar file

我在Jar文件中使用JWNL wordnet时遇到问题。

JWNL使用RandomAccessFile读取wordnet词典文件。 为了创建一个Jar文件,将wordnet词典文件放在resources / wordnet文件夹中。 由于资源位于我的构建路径中,因此我可以轻松运行在Eclipse中创建的应用程序。 但是,当我使用另一个应用程序运行创建的jar文件时,出现以下错误:

java.io.FileNotFoundException:资源/wordnet/data.noun(无此类文件或目录)

从以下代码中:

RandomAccess _file = new RandomAccessFile(path, _permissions);

我使用以下代码检查当前工作目录:

URL location = PrincetonRandomAccessDictionaryFile.class.getProtectionDomain().getCodeSource().getLocation();
System.out.println(location.getFile());

看来这两种情况都在同一位置: /project/bin/

我应该如何解决该问题? 谢谢

您似乎缺少的关键信息是Jar文件已压缩,并且由于压缩而无法“寻找”(我相信是DEFLATE算法)。

但是,您可以在启动时将文件提取到临时文件中 ,然后使用它。 临时文件将在应用程序退出时被删除,这是我能想到的最佳答案。

RandomAccessFile读取Jar文件中的文件

JAR文件中没有文件。 有JAR条目。 您无法使用FileInputStreams, RandomAccessFiles,FileReaders.读取它们FileReaders. 您需要使用JarInputStream或其朋友。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM