Class MainClassFinder

java.lang.Object
org.springframework.boot.loader.tools.MainClassFinder

public abstract class MainClassFinder extends Object
Finds any class with a public static main method by performing a breadth first search.
Since:
1.0.0
Author:
Phillip Webb, Andy Wilkinson
  • Constructor Details

    • MainClassFinder

      public MainClassFinder()
  • Method Details

    • findMainClass

      public static String findMainClass(File rootDirectory) throws IOException
      Find the main class from a given directory.
      Parameters:
      rootDirectory - the root directory to search
      Returns:
      the main class or null
      Throws:
      IOException - if the directory cannot be read
    • findSingleMainClass

      public static String findSingleMainClass(File rootDirectory) throws IOException
      Find a single main class from the given rootDirectory.
      Parameters:
      rootDirectory - the root directory to search
      Returns:
      the main class or null
      Throws:
      IOException - if the directory cannot be read
    • findSingleMainClass

      public static String findSingleMainClass(File rootDirectory, String annotationName) throws IOException
      Find a single main class from the given rootDirectory. A main class annotated with an annotation with the given annotationName will be preferred over a main class with no such annotation.
      Parameters:
      rootDirectory - the root directory to search
      annotationName - the name of the annotation that may be present on the main class
      Returns:
      the main class or null
      Throws:
      IOException - if the directory cannot be read
    • findMainClass

      public static String findMainClass(JarFile jarFile, String classesLocation) throws IOException
      Find the main class in a given jar file.
      Parameters:
      jarFile - the jar file to search
      classesLocation - the location within the jar containing classes
      Returns:
      the main class or null
      Throws:
      IOException - if the jar file cannot be read
    • findSingleMainClass

      public static String findSingleMainClass(JarFile jarFile, String classesLocation) throws IOException
      Find a single main class in a given jar file.
      Parameters:
      jarFile - the jar file to search
      classesLocation - the location within the jar containing classes
      Returns:
      the main class or null
      Throws:
      IOException - if the jar file cannot be read
    • findSingleMainClass

      public static String findSingleMainClass(JarFile jarFile, String classesLocation, String annotationName) throws IOException
      Find a single main class in a given jar file. A main class annotated with an annotation with the given annotationName will be preferred over a main class with no such annotation.
      Parameters:
      jarFile - the jar file to search
      classesLocation - the location within the jar containing classes
      annotationName - the name of the annotation that may be present on the main class
      Returns:
      the main class or null
      Throws:
      IOException - if the jar file cannot be read