Código com erro

import java.math.BigInteger;

import java.util.Scanner;

public class App {

    public static BigInteger fatorial( BigInteger n ) {

        if (n.compareTo( BigInteger.ONE ) <= 0 ) {

          return BigInteger.ONE;

        } else {

          return n.multiply( fatorial( n.subtract(BigInteger.ONE) ) );

        }

      }



      public static void main( String[] args ) {

        Scanner tec = new Scanner (System.in);

        int num = tec.nextInt();

        if (num < 1) {

            System.out.println("número negativo não possui fatorial");

            if (num == 0){

                System.out.println("1");

            }

        } else {

          BigInteger n = new BigInteger( args[num] );

       

          System.out.print(fatorial(n) );

        }

   

      }

   

    }

N CONSIGO ACHAR O ERRO ME AJUDEM PFV
import java.math.BigInteger;
import java.util.Scanner;

public class App {

  public static BigInteger fatorial(BigInteger n) {
    if (n.compareTo(BigInteger.ONE) <= 0) {
      return BigInteger.ONE;
    } else {
      return n.multiply(fatorial(n.subtract(BigInteger.ONE)));
    }
  }

  static final Scanner tec = new Scanner(System.in);
  
  public static void main(String[] args) {
    System.out.print("informe um número positivo: ");
    int num = Integer.parseInt(tec.nextLine());
    if (num < 1) {
      System.out.println("número negativo não possui fatorial");
      if (num == 0) {
        System.out.println("1");
      }
    } else {
      BigInteger n = BigInteger.valueOf(num);
      System.out.print(fatorial(n));
    }
  }
}