如何从包中导入相同的类

时间:2014-08-13 13:25:20

标签: java android jar import

我有一个ajar文件,其中包含包含很多不同类的包org.apache,如Socket ...当我将这个Jar包含到我的项目中时,它宁可使用(导入)现有的java包“org.apache “而不是我罐子里的那个。我可以说,我在libs目录中添加了jar。如何确保使用jar包中的自定义类(而不是java类)。

如果您有其他问题,请随时询问。

2 个答案:

答案 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旗帜。

否则请提供更多详细信息。