O meu programa só faz metade do pretendido

import java.util.Scanner;

public class maiornum{
  public static void main(String[] args) {
   
    }
  public static int num (int num1, int num2) {
     Scanner sc = new Scanner(System.in);
    System.out.println("Digite o numero 1.");
    int num1 = sc.nextInt();
    System.out.println("Digite o numero 2.");
    int num2 = sc.nextInt();
   System.out.println("O maior numero é o" ); 
 if(num1 > num2){
       return num1;
     } else {
       return num2;
     }
   }

 }

Não aparece no leitor a parte do return

Em lado nenhm estás mandar imprimir o valor do return.

int maior = num2;
if(num1 > num2){
    maior = num1
}
System.out.println("O maior numero é o" + maior);

então tenho de colocar isso ainda no main??

Exatamente, seu main não faz nada.

import java.util.Scanner;

public class MaiorNum {

    private static final Scanner sc = new Scanner(System.in);
    
    public static void main(String[] args) {
        System.out.println("Digite o numero 1.");
        int num1 = Integer.parseInt(sc.nextLine());
        
        System.out.println("Digite o numero 2.");
        int num2 = Integer.parseInt(sc.nextLine());
        
        int maior = num(num1, num2);
        System.out.println("O maior numero é o " + maior);
    }
    
    public static int num (int num1, int num2) {
        if (num1 > num2) {
            return num1;
        } else {
            return num2;
        }
    }
}
1 curtida

muito obrigado aos dois!!