gpt4 book ai didi

java - 从命令行使用 Java JAR 文件

转载 作者:行者123 更新时间:2023-11-30 04:58:58 25 4
gpt4 key购买 nike

让我们有一个 Java 应用程序,包含在文件 A.javaB.java 中,并依赖于 somejar.jar 文件。问题是:

  • 如何创建一个可自运行的 JAR 文件,其中包含编译的所有依赖项和源代码?主要条件是仅使用标准 Java 实用程序(由 JDK 提供;例如:javajavacjar)并且 任何构建工具,如 Maven、Ant 或任何其他工具。

  • 如何在我的应用程序中使用外部 JAR 文件?例如,该算法是: 如果“otherjar.jar”存在于主应用程序 JAR 附近,我们应该从该类调用方法 Moo::method1,并将 Foo 类的新实例传递给它。 Moo 和 Foo 应出现在“otherjar.jar”文件中。不过,“config.xml”文件也应该在那里

最佳答案

从@michael667给出的链接中,您可能对此部分更感兴趣:Adding Classes to the JAR File's Classpath 。特别是这个注释:

Note: The Class-Path header points to classes or JAR files on the local network, not JAR files within the JAR file or classes accessible over internet protocols. To load classes in JAR files within a JAR file into the class path, you must write custom code to load those classes. For example, if MyJar.jar contains another JAR file called MyUtils.jar, you cannot use the Class-Path header in MyJar.jar's manifest to load classes in MyUtils.jar into the class path.

如果您不编写自己的类加载器代码,那么使用标准 java 工具就不可能做到这一点。有一些工具,例如 One-jar它可以为您提供这样的类加载器。

当然,您始终可以手动使用 exploding-jar 方法,但这似乎并不是您真正想要的。

您可能还会发现此问题的答案很有用:Classpath including JAR within a JAR

关于java - 从命令行使用 Java JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7579974/

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