< 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 >