Cześć
Mam taki problem, że nie wiem jak wywołać 2 komendy w Javie. Na zasadzie - pierw muszę odnieść się do źródła, a potem dopiero mogę wywołać drugą komendę (inaczej nie działa albo nie umiem tego zrobić, bo nie jestem w tym dobry). Z jedną komendą nie ma problemu i potem kod wyświetla co zostało wywołane w cmd. W pierwszej linii wywołuję direct
, a jak już jestem w źródle to dopiero mogę użyć mvn clean install
i to chciałbym wywołać i wyświetlić w terminalu IntellijIDEA.
Jak próbuję na milion sposobów z drugą to albo nic nie wyświetla albo dzieje się jakiś proces w tle. Poniżej kod taki, aby był czytelny i który działa z jedną linią:
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("cmd.exe", "/c", "dir","C:\\Users\\MavenProject");
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
A tutaj pełny częściowo z opcjami jakie próbowałem:
ProcessBuilder processBuilder = new ProcessBuilder();
// ProcessBuilder processBuilder2 = new ProcessBuilder();
processBuilder.command("cmd.exe", "/c", "dir","C:\\Users\\MavenProject");
// processBuilder2.command("cmd.exe", "mvn clean install"); // <-- to nie działa poprzez zrobienie 2'go procesu. Poniżej wykasowany kod do jego // użycia, ale tak jak wspominałem - nie działało.
processBuilder.redirectErrorStream(true);
Process process =
processBuilder.start();
// Runtime.getRuntime().exec("cmd /c mvn clean install", null, new File("C:\\Users\\MavenProject")); //<-- to też nie //działa
// Process process2 = Runtime.getRuntime().exec("cmd c/ mvn clean install");
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
Jakieś sugestie co robię źle albo czemu mi nie wyświetla? Będę bardzo wdzięczny