java - Bash 编译 Java 类和 JAR

标签 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 的正确方法是什么?

最佳答案

您必须将 ~ 放在引号外,以便 shell 可以扩展它:

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

关于java - Bash 编译 Java 类和 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28439738/

相关文章:

C UNIX Shell execvp 回显引号

java - PhpStrom7 SFTP 连接失败

java - Android ImageView 在图像周围添加空白(尝试修复此处但不成功)

java - 高并发写入数据库

bash - awk 简单计算器函数在包含单字母目录的工作目录中表现异常

bash - 使用 Unix/Bash,如何制作查找表?

linux - ash 文件的结构如何?

linux - 如何自动打开带有命令的拆分终端

Java: "Unexpected Type; required: Variable; found: value"通过尝试返回一个值

linux - 在 BASH 中,如何从使用 HTML <textarea></textarea> 编写的文件中存在的变量替换\r