为什么我的java文件没有运行(bash)

时间:2014-10-03 03:09:03

标签: java linux bash

我正在编写一个bash脚本,让我从不同的目录运行一个java文件,但我不知道为什么我已编译的java文件不会运行。相关代码:

#!/bin/bash

if [ "$1" == "JavaAdd" -o "$1" == "JavaAddBad" ]
then
    echo "Testing $1"
    `java ../Source/Java/"$1"`

else  
    echo "Invalid File"
fi

此脚本位于Script目录下。因此,子目录Script和Source都在同一目录中。我编译的java文件在/ Source / Java

1 个答案:

答案 0 :(得分:3)

java的参数不是路径或文件名。

这是班级名称

您可以通过指定类路径来告诉Java在哪里找到它。

java -cp ../somewhere/classes:../../somewhereElse/x.jar com.me.MyClass

然后将在类路径的所有位置查找该类。每个位置都可以是目录或jar文件。

另请注意,您为类路径提供的目录需要放在类包层次结构的根目录中。因此,如果您的班级被称为com.me.MyClass并且它位于../somewhere/classes/com/me/MyClass.class的文件中,则您需要包含../somewhere/classes(不是其任何子目录)。

另请注意,包含类路径不会更改程序的工作目录。根据您启动文件的目录打开文件时,它仍将解析相对路径(与类文件的位置完全无关)。