首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JUnit类路径与ContextClassLoader不一致性或我的误解

JUnit类路径与ContextClassLoader不一致性或我的误解
EN

Stack Overflow用户
提问于 2013-02-14 00:28:59
回答 1查看 219关注 0票数 0

我要做的是将.class文件(已编译的类文件)作为资源流从jar加载。此尝试是从JUnit测试用例内部进行的。

  1. 测试用例编译和运行没有问题,因此: AFAIK资产类应该在类路径中可用
  2. 完整的类名必须与其在文件结构中的位置一致,因此:我们可以用目录分隔符替换包名中的点,以获得类文件的位置。
  3. 我们可以使用getResourceAsStream方法访问当前类路径中的所有内容。

让我介绍一些代码,以更好地理解。

代码语言:javascript
复制
package org.jboss.shrinkwrap.impl.nio.file;    
import org.jboss.shrinkwrap.api.asset.Asset;

public class FileStoreTestCase {
// (...)
@Test
public void usedSpace(){    
    final Class<?> classToAdd = Asset.class;
    final String pathToClass = new StringBuilder(classToAdd.getName().replace('.', File.separatorChar)).append(
            ".class").toString();

    final InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(pathToClass);

}

问题是,在上面的代码中," in“变量总是空的。你知道为什么吗?我怎么才能让它起作用呢?

谢谢你的意见。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 00:59:55

尝试用替换(‘.’,'/'),即用'/‘代替File.separatorChar

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

https://stackoverflow.com/questions/14865831

复制
相关文章

相似问题

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