我在eclipse中有2个项目A和B. B依赖于A.在项目A中是文本文件"file.txt"
。该文件可以通过例如getClass().getResourceAsStream(...)
...加载到项目B中,因为该文件的位置在classpath
。我想在项目B中提供相同的文件名,并且仅在项目B中存在文件时才执行某些操作。如果项目B中没有文件,则在使用getClass().getResourceAsStream(...)
加载期间不应找到任何文件。目前该文件将始终找到。从“当前项目”的类路径位置读取文件
谢谢你的帮助。
亲切的问候 塞巴斯蒂安
我需要提供有关该问题的一点点信息。抱歉。
有一个项目C是核心。在项目C中有以下几类:
- 检查是否存在
file.txt
。这是仅检查文件名的基本代码。没有包名称。我不想改变它。 - 如果是,那么做点什么。
- 如果现在就做别的事情。
A取决于C和B也取决于C.如果将执行A,那么C的基本代码将尝试找到file.txt
。
如果B将被执行,那么基本代码也将尝试找到file.txt
。如果B项目中没有文件,那么它会找到,因为它在A中。我不想要它。
非常感谢。
谢谢您的回答。这对我来说并不完全是解决方案。请看看我编辑了我的问题。 – sebastian 2011-03-10 09:30:40
您可以尝试调用getClass()。getClassLoader()。getResources(),它将返回所有找到的资源。最终你可以玩类加载器,通过ClassLoader的getParent()方法遍历所有的类加载器层次结构,使得该方法递归。 – 2011-03-10 10:42:25
谢谢你的回答。我调用'getClass()。getClassLoader()。getResources(“file.txt”)''。 然后我遍历该文件的类路径中的所有路径,并检查该文件来自哪个项目。 – sebastian 2011-03-10 11:33:02