Bash 编译 Java 类 和 JAR
Bash compiling Java classes and JARs
我正在尝试编写一个脚本来自动执行一些我经常执行的任务。我的文件的文件夹结构是这样的:
./
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
的正确方法是什么?
您必须将 ~
保留在引号外,以便 shell 可以扩展它:
javac -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src src/SampleProgram.java
java -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src SampleProgram
我正在尝试编写一个脚本来自动执行一些我经常执行的任务。我的文件的文件夹结构是这样的:
./
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
的正确方法是什么?
您必须将 ~
保留在引号外,以便 shell 可以扩展它:
javac -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src src/SampleProgram.java
java -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src SampleProgram