说我正在这样做:
java -jar someJar
“ someJar”需要引用tools.jar(用于jsp编译).我不想将tools.jar捆绑在someJar内部,因为我担心与正在执行的JVM不兼容.我无法指定-classpath,因为使用-jar时会忽略它.我试了-Djava.ext.dirs,那没有用.有谁知道如何从可执行jar中引用tools.jar?
解决方法:
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不能放在扩展目录中.这实际上意味着在JAR清单中指定它可能根本不是一个好主意.但是,有两种选择:
>使用CLASSPATH变量或-cp选项指定tools.jar.如果您在JAR中有一个主类,则可以使用该主类,现在可以使用java -cp $JDK_HOME / lib / tools.jar MainClass命令对其进行初始化,其中MainClass是该类的完全限定名称.
>使用自定义的类加载器,该类加载器加载tools.jar,前提是您知道JDK主目录的位置.使用JRE会使事情变得困难,因为这将迫使您要求用户指定JDK的位置. JDK的位置可以使用System.getProperty调用通过java.home属性确定.
标签:java
来源: https://codeday.me/bug/20191209/2097254.html