2016-01-18 2 views
-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:

  1. Извините за плохое редактирование исходного вопроса. Исправленный.
  2. echo производит java -cp /my/dir/Dep1.jar:/my/dir/Dep2.jar:/my/dir/MainJar.jar one.of.my.classes.Class1 <args>
  3. Я добавил здание CLASSPATH пытается получить сценарий для работы. Удаление его не имеет эффекта, т. Е. Я получаю такую ​​же точную ошибку.
  4. Возможно ли, что JAR каким-то образом построен? Я создаю его, запустив сборку муравьев из Eclipse.
+3

Не могли бы вы _echo_ полный сгенерированный командной строки? И что такое JARGS? О ... опечатка для JARS? ^^ – Berger

+1

JARGS опечатка -> отсутствует jar -> отсутствует Main класс. Дело закрыто. –

+0

@GergelyBacso Не так быстро, Коломбо. – Kayaman

ответ

0

Сценарий работал после того, как я добавил

export PATH=$PATH:<path to java directory> 

 Смежные вопросы

  • Нет связанных вопросов^_^