我正在尝试编写一个脚本,该脚本将自动执行我经常执行的一些任务。我的文件的文件夹结构如下:
./
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
的正确方法是什么?
答案 0 :(得分:5)
您必须将~
保留在引号之外,以便shell可以展开它:
javac -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src src/SampleProgram.java
java -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src SampleProgram