我在运行 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.shtesting_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 -client -classpath './classes:./lib/javacsv.jar' -Xmx7200m Finder.Main "
它必须是:
"java -client -classpath ./classes:./lib/javacsv.jar -Xmx7200m Finder.Main "
这可能与 bash 及其工作原理有关,我不知道为什么会发生这种情况,但这一更改解决了问题。
关于java - 从批处理脚本运行 java 程序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897343/