gpt4 book ai didi

java - 从已执行的 JAR 中获取 list 文件

转载 作者:搜寻专家 更新时间:2023-11-01 03:56:15 25 4
gpt4 key购买 nike

假设我有:
核心.jar
client.jar(包含main-method)(使用core.jar)
super_mega_client.jar(使用core.jar、client.jar)

要运行我的程序,我使用“java -jar super_mega_client.jar”
我怎么能从“super_mega_client.jar”中获取 list 文件,而对它的名称和内容一无所知?
实际上我需要在 core.jar 中创建一个 util,它将与 jar 一起工作,用“java -jar ***.jar”执行


好的,这是正确的问题:
我有 ma​​in.jar 和 main-method(假设在 my.app.Main 类中)
我还有 fisrt.jar(带有一些类和资源)和 second.jar(带有一些其他类和资源)。两者都没有主类,在 CLASSPATH 中都有“ma​​in.jar”,都具有定义为“my.app.Main”的 Main-Class 属性。
我可以通过执行“java -jar first.jar”或“java -jar second.jar”来运行我的应用
在我的 my.app.Main.main(String[] args) 方法中(包含在 ma​​in.jar 中)我想知道执行的 jar 的名称(我想获取“first.jar”或“second.jar”)
我该怎么做?

最佳答案

在声明其主类的任何 jar 中,位置和名称由标准固定为 META-INF/MANIFEST.MF

您可以使用 Java SDK 附带的 jar 命令检索 list 文件(您可以从该命令运行的任何 zip 工具也可能足够),方法是运行:

jar -xvf anyjar.jar META-INF/MANIFEST.MF

这将创建 META-INF 目录并将 list 文件放入其中。如果您想要更简洁的输出,可以省略 -v。

关于java - 从已执行的 JAR 中获取 list 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2228031/

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