java - 从批处理脚本运行 java 程序时出现问题

标签 java batch-file

我在运行 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

它就像一个魅力!所以我不知道发生了什么。

我检查了一些问题,例如 thisthis ,但我看不到任何对我有用的东西。

感谢您的宝贵时间,伙计们

最佳答案

执行变量中的简单引号有一个小问题,所以改为:

"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/

相关文章:

Visual Basic MidB$ 的 Java 等效项

java - Scala reduce 和 fold 返回 0 而不是一个值

batch-file - 如何在批处理脚本中用双引号分隔

Windows 8 cli 截图

windows - 用于卸载程序的批处理文件

java.lang.IllegalStateException : Two different ViewHolders have the same stable ID

java - 使用包时,找不到依赖于另一个的类,即使在同一个文件夹中

Java/iText/Flying Saucer : Convert HTML containing svg tags to pdf

powershell - 如何关闭所有窗口

batch-file - 数学批量关闭