说我这样做:如何从一个可执行的JAR引用的tools.jar
java -jar someJar
“someJar” 需要参考的tools.jar(对于JSP编译)。我不想在someJar中捆绑tools.jar,因为我害怕与正在执行的JVM不兼容。我不能指定-classpath,因为在使用-jar时它会被忽略。我尝试了-Djava.ext.dirs,但没有奏效。有没有人有关于如何从可执行jar引用tools.jar的想法?
说我这样做:如何从一个可执行的JAR引用的tools.jar
java -jar someJar
“someJar” 需要参考的tools.jar(对于JSP编译)。我不想在someJar中捆绑tools.jar,因为我害怕与正在执行的JVM不兼容。我不能指定-classpath,因为在使用-jar时它会被忽略。我尝试了-Djava.ext.dirs,但没有奏效。有没有人有关于如何从可执行jar引用tools.jar的想法?
开始使用Java 1.4,tools.jar needs to be included in the user classpath:
的工具类现在是在一个单独的 存档(tools.jar中),如果包含在用户 类路径可以 只能用(被解释不久)。
换句话说,tools.jar不能放在扩展目录中。这实际上意味着在JAR的清单中指定它可能根本不是一个好主意。但有几个选项:
java -cp $JDK_HOME/lib/tools.jar MainClass
命令对其进行初始化,其中MainClass
是该类的完全限定名称。-jar选项优先于-classpath选项。但是,您可以在正在执行的jar清单文件中包含类路径引用。有一个称为“类路径”,它可以包含对其他罐子
这里相对或绝对引用属性的一个片段向您展示如何
<target name="jar" depends="compile">
<jar destfile="foo.jar" basedir="classes">
<manifest>
<attribute name="Main-Class" value="com.wiggle.foo" />
<attribute name="Class-Path"
value="C:/Java/jdk1.5.0_21/lib/tools.jar" />
</manifest>
</jar>
</target>
需要注意的是,如果你想在类中包含多个罐子-Path属性,他们必须在清单文件中的单行上
我不希望清单参考系统相关位置。使用-jar时,我也不能使用-classpath。我认为解决这个问题的方法是使用-classpath,而不是使用-jar。我不会将主要类放在清单中,而是将主要类放在命令行上。