如何在Linux中设置CLASSPATH让java查找jar文件?

时间:2013-06-07 07:25:08

标签: java linux classpath

在Linux下我试图运行一个jar文件,如下所示:

java -jar plantuml.jar -testdot

CLASSPATH设置为以下任意一项(文件位于/home/user/plantuml.jar)时:

export CLASSPATH=/home/user
export CLASSPATH=/home/user/
export CLASSPATH=/home/user/plantuml.jar

在任何一种情况下,无论我如何定义CLASSPATHjava命令都会给出错误Unable to access jarfile plantuml.jar。我在这里做错了什么?

4 个答案:

答案 0 :(得分:1)

您必须在参数-jar之后提供完整路径。因此,对于您的示例,您必须致电

java -jar /home/user/plantuml.jar -testdot

仅评估$CLASSPATH以查找其他文件(类/资源),但不查询命令行中定义的jar文件。

答案 1 :(得分:1)

export CLASSPATH="/path/to/class_or_jar1":"/path/to/class_or_jar2":"${CLASSPATH}" 

答案 2 :(得分:0)

当您按名称引用类时,类路径用于查找类。它本质上是一个路径列表(目录和jar / zip文件),JVM在使用ClassLoader.getResourceAsStream()等方法时需要查找类或其他资源。

在命令行上传递给-jar选项的值是JAR文件的文件路径。

因此,如果您只是按名称引用jar文件,它将找不到jar文件。 CLASSPATH中的JAR文件路径应该是“包含”其他资源的路径元素。

你需要做的是

  1. 尝试执行jar时提供jar文件的完整路径
  2. 将类路径设置为jar文件的路径,并运行java命令,给出要执行的主类的名称。

答案 3 :(得分:0)

也许您缺少主要类的名称或jar的路径。你尝试过执行它吗?

java -jar full_path/plantuml.jar package.YourClass -testdot

您的课程是否取决于其他课程?如果是,您可能需要添加-cp参数。