在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
在任何一种情况下,无论我如何定义CLASSPATH
,java
命令都会给出错误Unable to access jarfile plantuml.jar
。我在这里做错了什么?
答案 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文件路径应该是“包含”其他资源的路径元素。
你需要做的是
答案 3 :(得分:0)
也许您缺少主要类的名称或jar的路径。你尝试过执行它吗?
java -jar full_path/plantuml.jar package.YourClass -testdot
您的课程是否取决于其他课程?如果是,您可能需要添加-cp参数。