gpt4 book ai didi

java - 我需要一些有关在 Java 中使用 2 个 jar 文件的帮助

转载 作者:行者123 更新时间:2023-11-29 09:23:00 25 4
gpt4 key购买 nike

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

基本上现在发生的事情是,当我构建项目时,我有一个包含所有内容的主 .jar 文件,但在 NetBeans 中构建时,MySql JDBC Connector .jar 文件位于主 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 构建的原因。

最佳答案

I have heard that nested .jar files are not supported in Java

更准确地说,在主 JAR 中作为子 JAR 打包的 JAR 文件中的类在默认情况下确实对主 JAR 中的类不可见。

您基本上有 2 个选择:

  1. 使用 2 个松散的 JAR 运送您的应用程序:your.jarmysql.jar并定义到 mysql.jar 的相对路径在Class-Path输入 MANIFEST.MF your.jar 的文件.

    Class-Path: mysql.jar

    当您将两个 JAR 放在同一个文件夹中并执行 your.jar 时通过 java -jar your.jar , 那么它就会起作用。

  2. 让您的 IDE 重新打包 mysql.jar 的所有松散类里面your.jar或者添加一个特殊的类加载器来预加载任何嵌入式 JAR 的类。由于我不做 Netbeans,我不知道它是否支持它,如果支持,如何做。然而,在 Eclipse 中,这绝对是可能的。另见 this answer .

关于java - 我需要一些有关在 Java 中使用 2 个 jar 文件的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4964252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com