Puszczenie 2 komendy po kolei w cmd poprzez ProcessBuilder lub Runtime.getRuntime().exec();

0

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

3

W każdym języku, jak bym od lat nie uprawiał, to dir robię przez API języka / biblioteki standardowej, a nie przez spawnowanie CMD
https://www.baeldung.com/java-list-directory-files

1 użytkowników online, w tym zalogowanych: 0, gości: 1