Collect tags using the Java Compiler Tree API

This commit is contained in:
naofal.helal
2025-03-24 15:54:42 +03:00
parent f7d058d602
commit 9d67b770da
10 changed files with 338 additions and 2 deletions

View File

@@ -231,6 +231,36 @@ public class NoBuild {
return command(commandLineStream.toArray(String[]::new));
}
/**
* Runs a Java class
*
* @param additionalClassPaths Additional class paths to pass to the compiler
* @param javaArguments Arguments to pass to the java binary
* @param mainClass The fully qualified class name, e.g. {@code com.example.MyClass$MySubClass}
* @param args Arguments to pass to the main method
* @return Exit status code
*/
public static int runJava(
String[] additionalClassPaths, String[] javaArguments, String mainClass, String... args) {
String pathSeparator = System.getProperty("path.separator");
String classPaths =
String.join(
pathSeparator,
Stream.concat(Stream.of(javaClassPath), Arrays.stream(additionalClassPaths))
.toArray(String[]::new));
Stream<String> commandLineStream =
Stream.of(
Stream.of(javaBin.toString(), "-cp", classPaths),
Arrays.stream(javaArguments),
Stream.of(mainClass),
Arrays.stream(args))
.flatMap(it -> it);
return command(commandLineStream.toArray(String[]::new));
}
/**
* Compiles java sources
*