```java title="BasicCli.java" import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public final class BasicCli { private BasicCli() {} public static String extractWithCli(String filePath, String outputFormat) throws IOException, InterruptedException { ProcessBuilder pb = new ProcessBuilder("kreuzberg", "extract", filePath, "--format", outputFormat); pb.redirectErrorStream(true); Process process = pb.start(); StringBuilder output = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) { String line; while ((line = reader.readLine()) != null) { output.append(line).append("\n"); } } int exitCode = process.waitFor(); if (exitCode != 0) { throw new RuntimeException("CLI exited with code " + exitCode + ": " + output); } return output.toString().trim(); } public static void main(String[] args) throws IOException, InterruptedException { String document = "document.pdf"; String textOutput = extractWithCli(document, "text"); System.out.println("Extracted: " + textOutput.length() + " characters"); String jsonOutput = extractWithCli(document, "json"); System.out.println("JSON output received: " + jsonOutput.length() + " bytes"); } } ```