我有一个 JAR 文件,它有许多依赖项(主要是 ApacheCommons 的东西)。当我将所有这些 JAR 放在与我的主要 JAR 相同的目录中时,一切都运行正常。但这会造成混乱,这也意味着人们在系统上移动我的程序的 JAR 时必须携带所有这些外部库。
因此,我将它们全部放在一个单独的目录中,并将该目录的路径添加到 CLASSPATH 环境变量中(使用/etc/environment
)。现在,即使echo $CLASSPATH
返回该路径,仍然在同一目录中运行没有这些库的 JAR 会导致java.lang.NoClassDefFoundError
(当找不到所需的外部 JAR 时会发生这种情况)。
如能得到任何帮助/想法我将非常感激。
答案1
这不是一个真正的 ubuntu 问题,请参阅此问题在 stackoverflow 上。
CLASSPATH 变量不列出 jar 文件的路径,而是列出 Java 类文件的路径。要将 jav 文件包含在类路径中,您必须将 jar 文件的文件名放入类路径中(例如CLASSPATH=/path/to/some/jar/file/jarfile.jar
)。