Class JvmLauncherLines

java.lang.Object
org.ek9lang.compiler.common.JvmLauncherLines

public final class JvmLauncherLines extends Object
THE lines the JVM launcher writes on stderr before main runs - Picked up JAVA_TOOL_OPTIONS: ... (and _JAVA_OPTIONS, NOTE: Picked up JDK_JAVA_OPTIONS) whenever such a variable is set. No flag turns them off and no EK9 code can write ahead of them, so a reader of a child JVM's stderr skips them while they LEAD it: they are the JVM's, never the run's (Steve's environment sets JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8; 2026-10-24). The variable itself is never stripped from a child's environment - it is the user's.

Readers: Ek9FailureMarker (the marker is the first line AFTER them) and the debugger's output pump (org.ek9lang.debug.JdiSession, as quiet=y keeps JDWP's own banner out of the program's output). Only a leading line counts: the same text later was printed by the program.

  • Method Details

    • isLauncherLine

      public static boolean isLauncherLine(String line)
      True when line (surrounding whitespace aside) is one the JVM launcher writes for an options variable.
    • withoutLeading

      public static String withoutLeading(String stderr)
      stderr from its first line that is not a launcher line (null stays null).