我有一个ajar文件,其中包含包含很多不同类的包org.apache
,如Socket ...当我将这个Jar包含到我的项目中时,它宁可使用(导入)现有的java包“org.apache “而不是我罐子里的那个。我可以说,我在libs
目录中添加了jar。如何确保使用jar包中的自定义类(而不是java类)。
如果您有其他问题,请随时询问。
答案 0 :(得分:1)
类路径为搜索的JAR和目录指定订单。如果真正的apache JAR位于类路径上的JAR之前,那么类加载器将首先查看真实的JAR文件。如果它在那里找到一个类,它将使用该版本而不是您的版本。
如何确保jar包中的自定义类...?
确保它位于类路径的开头。
由于您使用Android和Eclipse执行此操作,因此您需要执行依赖项“android方式”。根据我对"Dealing with dependencies in Android projects"的解读,您需要将Apache JAR文件放入libs目录的“库项目”中。我链接到的页面暗示您当前项目的lib/*.jar
文件自动首先出现在类路径中......并且它没有说您可以更改它。
应该说明,将Apache类的备用版本放入您的项目“一个可怕的黑客”并且它值得工作。正确的程序是:
如果这些Apache类是Android平台的一部分,那么根本不要改变它们!
否则,克隆相关的Apache源代码树,对其进行更改,重建Apache JAR,然后使用该JAR。
答案 1 :(得分:1)
我认为这取决于你的IDE。在eclipse中,您可以设置引用文件(JAR,类)的顺序。
如果从命令行执行工具,请在"升序"中添加文件。订购-cp
旗帜。
否则请提供更多详细信息。