< prev index next >

src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java

Print this page
rev 53024 : [mq]: 8215322

*** 19,41 **** * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ - - package jdk.tools.jaotc; import static org.graalvm.compiler.core.common.GraalOptions.GeneratePIC; import static org.graalvm.compiler.core.common.GraalOptions.ImmutableCode; import static org.graalvm.compiler.hotspot.meta.HotSpotAOTProfilingPlugin.Options.TieredAOT; import java.io.PrintWriter; import java.text.MessageFormat; import java.util.List; import java.util.ListIterator; import java.util.Set; import org.graalvm.compiler.api.replacements.SnippetReflectionProvider; import org.graalvm.compiler.api.runtime.GraalJVMCICompiler; import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.debug.DebugContext.Activation; --- 19,46 ---- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package jdk.tools.jaotc; import static org.graalvm.compiler.core.common.GraalOptions.GeneratePIC; import static org.graalvm.compiler.core.common.GraalOptions.ImmutableCode; import static org.graalvm.compiler.hotspot.meta.HotSpotAOTProfilingPlugin.Options.TieredAOT; + import java.io.IOException; import java.io.PrintWriter; import java.text.MessageFormat; + import java.util.ArrayList; + import java.util.Collections; import java.util.List; import java.util.ListIterator; import java.util.Set; + import java.util.StringTokenizer; + import java.util.stream.Stream; + import java.nio.file.Files; + import java.nio.file.Paths; import org.graalvm.compiler.api.replacements.SnippetReflectionProvider; import org.graalvm.compiler.api.runtime.GraalJVMCICompiler; import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.debug.DebugContext.Activation;
*** 76,89 **** private static final String JVM_VERSION = System.getProperty("java.runtime.version"); public static void main(String[] args) throws Exception { Main t = new Main(); ! final int exitCode = t.run(args); System.exit(exitCode); } private int run(String[] args) { log = new PrintWriter(System.out); printer = new LogPrinter(this, log); try { --- 81,117 ---- private static final String JVM_VERSION = System.getProperty("java.runtime.version"); public static void main(String[] args) throws Exception { Main t = new Main(); ! final int exitCode = t.run(parse(args)); System.exit(exitCode); } + /** + * Expands '@file' in command line arguments by replacing '@file' with the content of 'file' + * parsed by StringTokenizer. '@' character can be quoted as '@@'. + */ + private static String[] parse(String[] args) throws IOException { + List<String> result = new ArrayList<>(); + for (String arg : args) { + if (arg.length() > 1 && arg.charAt(0) == '@') { + String v = arg.substring(1); + if (v.charAt(0) == '@') { + result.add(v); + } else { + try (Stream<String> file = Files.lines(Paths.get(v))) { + file.map(StringTokenizer::new).map(Collections::list).flatMap(l -> l.stream().map(o -> (String) o)).forEachOrdered(result::add); + } + } + } else { + result.add(arg); + } + } + return result.toArray(String[]::new); + } + private int run(String[] args) { log = new PrintWriter(System.out); printer = new LogPrinter(this, log); try {
< prev index next >