Bash编译Java类和JAR

时间:2015-02-10 19:03:57

标签: java bash unix classpath javac

我正在尝试编写一个脚本,该脚本将自动执行我经常执行的一些任务。我的文件的文件夹结构如下:

./
sampleScript.sh
src/SampleProgram.java

除此之外,我的Java程序依赖ojdbc6.jar文件,该文件位于~/sampleFolder/lib

我试图在我的脚本中编译和运行Java程序,如下所示:

javac -cp "$CLASSPATH:~/sampleFolder/lib/ojdbc6.jar:./src" src/SampleProgram.java
java -cp "$CLASSPATH:~/sampleFolder/lib/ojdbc6.jar:./src" SampleProgram

不幸的是,这不起作用。在我的程序中检查ojdbc6.jar依赖项的步骤似乎失败了。根据此文件夹结构分配-cp的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

您必须将~保留在引号之外,以便shell可以展开它:

javac -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src src/SampleProgram.java
java  -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src SampleProgram