Компиляция Bash Java-классов и JAR-файлов

1

Я пытаюсь написать сценарий, который будет автоматизировать несколько задач, которые я делаю регулярно. Структура папок моих файлов выглядит так:

./
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 на основе этой структуры папок?

Теги:
javac
classpath

1 ответ

5
Лучший ответ

Вы должны оставить ~ вне цитаты, чтобы оболочка могла ее расширять:

javac -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src src/SampleProgram.java
java  -cp "$CLASSPATH":~/sampleFolder/lib/ojdbc6.jar:./src SampleProgram
  • 0
    Я попробовал ваше предложение, но моя программа все еще не работает на этом этапе: try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } с сообщением java.lang.ClassNotFoundException oracle.jdbc.driver.OracleDriver
  • 0
    Это должно работать. Разве вы не получаете ошибку в javac сейчас? Вы также можете попробовать указать полный путь к файлу jar, например: java -cp "$CLASSPATH":/home/user/sampleFolder/lib/ojdbc6.jar:./src SampleProgram
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню