У меня есть проблемы с пакетным сценарием, который запускает программу Java, вот некоторые ключевые строки сценария:Проблемы запуск программы Java из пакетного сценария
exeFinder="java -client -classpath './classes:./lib/javacsv.jar' -Xmx7200m Finder.Main ";
runFinder() {
cleanFolders;
$exeFinder $1 $2 $3 > $4;
}
dbName=$1;
k=$2;
n=$3;
outFile="simple_tester-out.log";
runFinder $dbName $k $n $outFile;
Я запустить сценарий с его аргументами: ./myScript.sh testing_7x8.csv 7 8
И я получаю это:
Error: Could not find or load main class Finder.Main
это выглядит как проблема Java, так что я изменить линию $exeFinder $1 $2 $3 > $4;
для echo "$exeFinder $1 $2 $3 > $4";
, чтобы получить мое выполнение построчно:
java -client -classpath './classes:./lib/javacsv.jar' -Xmx7200m Finder.Main testing_7x8.csv 7 8 > simple_tester-out.log
И это работает как шарм! Поэтому я не знаю, что происходит.
Я проверил несколько вопросов, таких как this и this, но я не вижу ничего полезного для меня.
Спасибо за ваше время, ребята
звучит как рабочий каталог vs classpath для меня. В чем работает рабочий каталог java-процесса? что wd - допустимые пути «./classes» и «./lib/javacsv.jar»? – radai
Да, они действительны, я использую тот же каталог для запуска скрипта и для запуска «прямого пути» ввода java-client -clas ..... 'непосредственно на терминал. и последняя форма отлично работает. Кстати, я нашел проблему или, по крайней мере, решение. – onlycparra