package net.jscanner; import java.io.ByteArrayInputStream; import java.nio.charset.Charset; import java.util.Arrays; import java.util.List; import com.google.common.base.Joiner; import net.jscanner.cli.CommandLineInterface; import net.jscanner.server.WebServer; import net.jscanner.ui.impl.JScannerUI; import net.jscanner.util.Configuration; import net.jscanner.util.FileManager; /** * A Java Malware Defense Tool. * * @author Desmond Jackson */ public class JScanner { /** * The main method. * * @param args Command line arguments */ public static void main(String[] args) { FileManager.createDirectories(); if (args.length > 0) handleArguments(Arrays.asList(args)); WebServer.start(Configuration.WEB_SERVER_PORT); CommandLineInterface.awaitInput(); } /** * Handles the arguments passed from the command line. * * @param args command line arguments */ private static void handleArguments(List<String> args) { String portFlag = "-p"; String guiFlag = "-gui"; if (!args.contains(guiFlag) && !args.contains(portFlag)) { System.setIn(new ByteArrayInputStream(Joiner.on(' ').join(args).getBytes(Charset.defaultCharset()))); return; } if (args.contains(guiFlag)) JScannerUI.display(); if (args.contains(portFlag)) { int portIndex = args.indexOf(portFlag) + 1; if (portIndex < args.size()) try { Configuration.WEB_SERVER_PORT = Integer.parseInt(args.get(portIndex)); } catch (NumberFormatException e) { System.out.println("Not a real port number... using 4545"); } else System.out.println("Specifiy a port number... using 4545"); } } }