首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从外部Jar文件内部读取文件?

从外部Jar文件内部读取文件?
EN

Stack Overflow用户
提问于 2012-11-09 01:38:05
回答 2查看 7.7K关注 0票数 3

我正在尝试使用java从外部jar中读取文件。例如,我有两个jar文件。一个是"foo.jar“,另一个是"bar.jar”。在"bar.jar“的内部是文件"foo-bar.txt”。如何使用“foo.jar”中的代码从"bar.jar“内部读取"foo-bar.txt”文件?这有可能吗..?我知道我可以从foo.jar内部读取一个文件,使用

代码语言:javascript
运行
复制
this.getClass().getClassLoader().getResourceAsStream("foo-bar.txt");

但我不知道如何在外部jar中做到这一点..有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-09 01:43:30

使用jar url打开连接示例代码

代码语言:javascript
运行
复制
InputStream in = null;
String inputFile = "jar:file:/c:/path/to/my.jar!/myfile.txt";
if (inputFile.startsWith("jar:")){
  try {
    inputURL = new URL(inputFile);
    JarURLConnection conn = (JarURLConnection)inputURL.openConnection();
    in = conn.getInputStream();
  } catch (MalformedURLException e1) {
    System.err.println("Malformed input URL: "+inputURL);
    return;
  } catch (IOException e1) {
    System.err.println("IO error open connection");
    return;
  }
} 
票数 6
EN

Stack Overflow用户

发布于 2012-11-09 01:42:57

如果jar在您的类路径中,那么getResourceAsStream将工作,但请注意,它将在您的类路径中找到第一个实例。如果foo.jar和bar.jar都包含这个文件,那么它将返回类路径中最先出现的那个jar。

要从jar中读取它,请使用JarFile.getEntryJarFile.getInputStream

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13294594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档