public HeaderChecker(File dir) {
    LICENSE = JDIO.readFileToString(HeaderChecker.LICENSE_FILE);
    LICENSE_PREFIX = LICENSE.substring(0, Math.min(LICENSE.indexOf('\r'), LICENSE.indexOf('\n')));
    LICENSE_PREFIX_TRIMMED = LICENSE_PREFIX.substring(2).trim();

    if (dir == null || !dir.exists()) {
      JFileChooser fc = new JFileChooser();
      fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
      fc.setCurrentDirectory(new File("."));
      if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
        dir = fc.getSelectedFile();
      } else {
        System.out.println("Keine Datei ausgewählt!");
        System.exit(0);
      }
    }

    this.dir = dir;
    this.files = HeaderChecker.getSourceFiles(dir);
  }
 public static void main(String[] args) {
   HeaderChecker hc = new HeaderChecker(HeaderChecker.START_DIRECTORY);
   hc.check();
   // hc.quickCheck();
 }