关于在Java中使用2个jar文件,我需要一些帮助

时间:2011-02-11 00:11:54

标签: java

我有2个.jar文件。主jar文件是我整个项目的jar文件,另一个.jar文件是MySql JDBC Connector。

现在基本上发生了什么,当我构建项目时,我有一个主要的.jar文件,除了MySql JDBC Connector .jar文件在NetBeans中构建时,它位于主jar文件中。

现在,当我从NetBeans中运行项目时,可以在我所拥有的src / com / game / mysql文件夹中找到MySql JDBC驱动程序。但是当我构建项目时,Java应用程序无法找到JDBC主jar文件中的驱动程序。

当我用WinRar打开主jar文件时,我可以看到JDBC jar文件仍在其/ com / game / mysql /文件夹中。但为什么Java应用程序无法访问它?

我听说Java中不支持嵌套的.jar文件所以我认为这可能是原因,虽然我不确定这是否正确。有没有办法可以让应用程序在主jar文件中找到JDBC .jar文件?

此外,我在NetBeans中完成了这项工作,您可以通过右键单击项目添加.jar文件 - >属性 - >图书馆 - >添加文件夹/ Jar。这是什么使它在NetBeans运行中工作,但仍然不是App构建。

1 个答案:

答案 0 :(得分:0)

  

我听说Java

不支持嵌套的.jar文件

更准确地说,JAR文件中的类(在主JAR中打包为子JAR)确实默认为主JAR中的类不可见。

你基本上有两个选择:

  1. 使用2个松散的JAR(your.jarmysql.jar发送您的应用程序,并在{{1}的mysql.jar条目中定义Class-Path的相对路径} MANIFEST.MF的文件。

    your.jar

    当您将两个JAR放在同一个文件夹中并按Class-Path: mysql.jar 执行your.jar时,它就能正常工作。

  2. 让您的IDE重新打包java -jar your.jar内所有松散的mysql.jar类,或者添加一个特殊的类加载器,它预加载任何嵌入式JAR的类。既然我不做Netbeans,我不知道它是否支持Netbeans,如果是的话,我怎么做。但是,在Eclipse中,这绝对是可能的。另请参阅this answer