Я выполняю свой код как;
mvn exec:java@xxxxxxxxxxxx -Dexec.args="hello"
Я не знаю почему, но каким-то образом он останавливает обработку. Он застревает через 10 или 20 секунд. Но это происходит с ProcessBuilder;
Вот как я его запускаю:
public static long runCommandLine(String commandLineArgs){
try {
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", commandLineArgs);
Process process = pb.start();
if(!commandLineArgs.contains("runner")) {
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((reader.readLine()) != null) { /*haha*/}
process.waitFor();
}
return process.pid();
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
Я посылаю путь файла .bat к методу в качестве аргумента (String commandLineArgs);
.bat файл содержит линии:
cd C:/xxxx/%username%/xxx
mvn exec:java@xxxxxxxxxxxx -Dexec.args="hello"
Если я запускаю файл .bat вручную, все в порядке. Но с ProcessBuilder через некоторое время он застрянет.
pom. xml configutarion:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>xxxxxxxx</id>
<configuration>
<mainClass>xxxxxxxxxxx</mainClass>
</configuration>
</execution>
</executions>
</plugin>