创建Jar文件,复制Classpath

时间:2011-06-02 18:24:56

标签: java jar

如果我正在创建superjar.jar并且需要一个jar文件stellar.jar,我需要将以下行添加到superjar.jar的清单文件中 Class-Path: path/to/stellar.jar。但在我的类路径中,我已经有stellar.jar。那么这笔交易是什么?为什么superjar.jar无法从我的类路径中查找stellar.jar的位置?

3 个答案:

答案 0 :(得分:0)

如果CLASSPATH表示环境变量,那么您将学习Java,所有IDE和所有Java EE应用服务器都会忽略它。

我在我工作的任何机器上都没有CLASSPATH环境变量,因为它没用。您需要了解如何在不依赖环境变量的情况下正确设置CLASSPATH。

答案 1 :(得分:0)

两件事:

  1. stellar.jar的路径是相对于superjar.jar
  2. 如果stellar.jar已经在类路径中,则它位于类路径中,而不管superjar.jar的清单是什么。

答案 2 :(得分:0)

  

我需要将以下行添加到superjar.jar的清单文件中Class-Path:path / to / stellar.jar。

如果忽略环境变量CLASSPATH,则需要在superjar中使用该路径,如果将superjar用作可执行jar,则将其忽略,并使用

启动它
java -jar superjar.jar

superjar.jar可以访问类路径,如果它是在没有使用不同的特殊类路径覆盖类路径的情况下启动的,并且没有运行可执行jar的技术,它总是只使用该jar中的CLASSPATH,并且总是忽略其他类路径的尝试。

CLASSPATH=/foo/bar/superjar.jar:/opt/some/stellar.jar 
java somepackage.SomeClass

类路径是相对的还是绝对的是一个不同的,无关的讨论。上面的例子使用Unix / Linux-Syntax。在Windows上,您将使用反斜杠和分隔符“;”。