Я пытаюсь написать сценарий, который будет автоматизировать несколько задач, которые я делаю регулярно. Структура папок моих файлов, как так:Bash компиляция классов Java и JAR
./
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
на основе этой структуры папок?
Я попробовал ваше предложение, но моя программа по-прежнему кажется, терпит неудачу на этом шаге: 'попробовать { Class.forName (" оракул .jdbc.driver.OracleDriver "); } catch (ClassNotFoundException e) { e.printStackTrace(); } 'с сообщением' java.lang.ClassNotFoundException oracle.jdbc.driver.OracleDriver' – raphnguyen
Это должно сработать. Вы не ошиблись в 'javac' сейчас? Вы также можете попробовать дать полный путь к файлу jar, например: 'java -cp" $ CLASSPATH ":/home/user/sampleFolder/lib/ojdbc6.jar: ./ src SampleProgram' – anubhava
Я бы предложил' $ HOME' над ' ~ 'по ряду причин, в том числе из-за того, что он расширяется в кавычках. –