【发布时间】:2016-03-09 16:34:54
【问题描述】:
我有一个运行 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,但我看不到任何对我有用的东西。
感谢您的宝贵时间,伙计们
【问题讨论】:
-
对我来说听起来像是工作目录与类路径的问题。 java进程运行的工作目录是什么?鉴于 wd,“./classes”和“./lib/javacsv.jar”是有效路径吗?
-
是的,它们是有效的,我使用相同的目录来运行脚本和运行“直接方式”,直接在终端上键入
java - client -clas.....。最后一种形式工作正常。顺便说一句,我找到了问题,或者至少找到了解决方案。
标签: java batch-file