Код: Выделить всё
execMainClass=${args[1]}
execArgs=("${args[@]:2}")
mvn exec:java -Dexec.mainClass="$execMainClass" -Dexec.args="${execArgs[*]@Q}" \
-Dexec.cleanupDaemonThreads=false --quiet
Код: Выделить всё
return std::process::Command::new("cmd")
.args(["/C", "mvn", "exec:java"])
.arg(format!("-Dexec.mainClass={main_class}"))
.args(["-Dexec.cleanupDaemonThreads=false", "--quiet"])
.status();
< /code>
Когда я запускаю свою ржавчину, он действительно вызывает Maven, которая затем запускает мою программу Java, которая запускает локальный сервер! Однако, когда я нажимаю Ctrl+C < /code>, чтобы остановить локальный сервер, я получаю следующее сообщение: < /p>
Terminate batch job (Y/N)?Код: Выделить всё
return std::process::Command::new("mvn")
.args(["exec:java"])
.arg(format!("-Dexec.mainClass={main_class}"))
.args(["-Dexec.cleanupDaemonThreads=false", "--quiet"])
.status();
< /code>
К сожалению, при запуске как в Git Bash, так и в PowerShell это приводит к: < /p>
Error: program not foundКод: Выделить всё
Err(e) => {
eprintln!("Error: {}", e);
std::process::exit(exitcode::SOFTWARE);
}
Код: Выделить всё
return std::process::Command::new("mvn.cmd")
.args(["exec:java"])
.arg(format!("-Dexec.mainClass={main_class}"))
.args(["-Dexec.cleanupDaemonThreads=false", "--quiet"])
.status();
< /code>
Это теперь работает Maven как в Git Bash, так и в PowerShell. Но после нажатия Ctrl+C < /code> в программе Java я все еще получаю: < /p>
Terminate batch job (Y/N)?git bash, очевидно, может вызвать mvn.cmd и выйти с ctrl+c , не получая прекращения работы (y/n)? Какой трюк мне нужно потянуть, чтобы сделать это в ржавчине?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -job-messa