我不知道我是否在问正确的问题,但我想澄清我的怀疑。
实际上我遇到了从jar文件中引用类文件的场景。 我的意思是说我有一个后端java项目说ABC带有application-context.xml文件。
现在我创建了ABC项目的jar文件,并在一个基于Web的应用程序中使用。
在这里,我面临的问题是豆子没有获得自动装配,并且知道问题是, 当我使用Eclipse导出ABC项目的jar文件时,我没有选择 “ADD DIRECTORY ENTRIES”复选框,后来我做了所有工作。
通过在jar文件中选中此框来查看所做的更改,以便全部工作,
所以我创建了2个jar文件,其中一个选中了“ADD DIRECTORY ENTRIES”,另一个未经检查,然后我使用超比较比较了这两个jar,发现没有任何区别。
有人可以解释一下“ADD DIRECTORY ENTRIES”究竟是什么吗?
我所知道的是它应该添加完整的结构而不是单个路径 COM /公司/项目/ MyJavaFile.class
COM /公司/
COM /公司/项目/
COM /公司/项目/ MyJavaFile.class
如果我错了,请纠正我。
答案 0 :(得分:7)
如果需要使用class.getResource()方法获取jar文件中特定目录的URI,则应在创建jar文件时启用“添加目录条目”。你可能想要这样做的原因是为你的“资源”文件夹保存一个URI。
如果你只使用class.getResource()来获取特定文件的URI [而不是目录],那么如果你不关闭“添加目录条目”,你就可以了。
答案 1 :(得分:2)
添加目录条目:为每个目录添加一个条目到JAR文件,即使该目录只包含子目录。
答案 2 :(得分:1)
如果您查看带有7-zip或类似内容的jar文件,则可以看到当选择“添加目录条目”时文件夹中存在“D”属性。当该选项不存在时,这些属性不存在。您的比较可能是比较jar文件中文件的内容,而不是查看jar文件属性。