gpt4 book ai didi

java - 如何从可执行 jar 中引用 tools.jar

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:28 24 4
gpt4 key购买 nike

假设我正在这样做:

java -jar someJar

“someJar”需要引用tools.jar(用于jsp编译)。我不想将 tools.jar 捆绑在 someJar 中,因为我担心与正在执行的 JVM 不兼容。我无法指定 -classpath,因为在使用 -jar 时它会被忽略。我试过 -Djava.ext.dirs 但没有用。有人知道如何从可执行 jar 中引用 tools.jar 吗?

最佳答案

从 Java 1.4 开始,tools.jar needs to be included in the user classpath :

The tools classes are now in a separate archive (tools.jar) and can only be used if included in the user class path (to be explained shortly).

也就是说,tools.jar不能放在extensions目录下。这实际上意味着在 JAR 的 list 中指定它可能根本不是一个好主意。但是,有几个选项:

  1. 使用 CLASSPATH 变量或 -cp 选项指定 tools.jar。如果您在 JAR 中有一个主类,这将起作用,现在可以使用 java -cp $JDK_HOME/lib/tools.jar MainClass 命令对其进行初始化,其中 MainClass 是类的完全限定名称。
  2. 使用加载 tools.jar 的自定义类加载器,前提是您知道 JDK 主目录的位置。使用 JRE 会使事情变得困难,因为您将被迫请求用户指定 JDK 的位置。可以使用 System.getProperty 调用通过 java.home 属性确定 JDK 的位置。

关于java - 如何从可执行 jar 中引用 tools.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473772/

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