-2
ниже команда работает хорошо, когда я исполню ее на RedHat 6 из командной строки:Java работает нормально из командной строки, но дает «Не удалось найти или загрузить основной класс» из сценария оболочки
java -cp /my/dir/Dep1.jar:/my/dir/Dep2.jar:/my/dir/MainJar.jar one.of.my.classes.Class1 <args> > log.txt
Однако, когда Я выполнить следующий скрипт test1.sh
(который имеет 755 разрешений):
#!/bin/sh
export JEXE="java"
export JBDIR="/my/dir"
export ARGS="<args>"
export JARS="${JBDIR}/Dep1.jar:${JBDIR}/Dep2.jar:${JBDIR}/MainJar.jar"
export CLASSPATH=""
for f in `ls ${JBDIR}/*.jar`
do
export CLASSPATH=$CLASSPATH:$f
done
cd "${JBDIR}"
"${JEXE}" -cp "${JARS}" one.of.my.classes.Class1 "${ARGS}" > log.txt
в ./test1.sh
из командной строки, я получаю Could not find or load main class
. Что я делаю не так?
UPDATE:
- Извините за плохое редактирование исходного вопроса. Исправленный.
echo
производитjava -cp /my/dir/Dep1.jar:/my/dir/Dep2.jar:/my/dir/MainJar.jar one.of.my.classes.Class1 <args>
- Я добавил здание
CLASSPATH
пытается получить сценарий для работы. Удаление его не имеет эффекта, т. Е. Я получаю такую же точную ошибку. - Возможно ли, что JAR каким-то образом построен? Я создаю его, запустив сборку муравьев из Eclipse.
Не могли бы вы _echo_ полный сгенерированный командной строки? И что такое JARGS? О ... опечатка для JARS? ^^ – Berger
JARGS опечатка -> отсутствует jar -> отсутствует Main класс. Дело закрыто. –
@GergelyBacso Не так быстро, Коломбо. – Kayaman