"Choose a number between 0-9" game
static Scanner p2Name = new Scanner(System.in);
        static Scanner p1Name = new Scanner(System.in);
        static Scanner p3Name = new Scanner(System.in);

        static Scanner p1Num = new Scanner(System.in);
        static Scanner p2Num = new Scanner(System.in);
        static Scanner p3Num = new Scanner(System.in);



You don't need all those scanners.  One is plenty.  

        static Scanner scanner = new Scanner(System.in);


Then replace each call using one of the other variables with scanner.  

It's possible that you may have to call scanner.nextLine() after calling scanner.nextInt().  I haven't tried it.  

@BKSpurgeon in Java

Here's the @BKSpurgeon solution converted to Java:  

Program.java

class Program {

    public static void main(String[] args) {
        GameMaster g = new GameMaster(3);
        g.printResults();
    }

}


Player.java

class Player {

    static Scanner scanner = new Scanner(System.in);

    private String name;       
    private int number;

    public Player(int playerPosition) {
        name = inputName(playerPosition);
        printName();
        number = inputNumber();
        //scanner.nextLine(); // uncomment if needed
    }

    private void printName() {
        System.out.println("Welcome "+ name + "!");
    }

    private int inputNumber() {
        System.out.println("Please enter a number between 0 and 9");

        return scanner.nextInt();
    }

    private String inputName(int playerPosition) {
        System.out.println("Player " + playerPosition + ", please enter your name");

        return scanner.nextLine();
    }

    public String calculateResult(int winningNumber) {
        return name + ((winningNumber == number) ? " won!" : ", you lose!");
    }

}


GameMaster.java

public class GameMaster {

    private final int winningNumber;
    private final List&lt;Player&gt; players = new ArrayList&lt;&gt;();

    public GameMaster(int playerCount) {
        winningNumber = chooseWinningNumber();

        for (int i = 1; i &lt;= playerCount; i++) {
            players.add(new Player(i));
        }
    }

    public void printResults() {
        for (Player p : players) {
            System.out.println(p.calculateResult(winningNumber));
        }
    }

    private static int chooseWinningNumber() {
        return (int) (Math.random() * 10);
    }

}


I made a few tweaks to comply with Java coding conventions, but the structure is mostly the same.  

I haven't tried to run it, so beware of typos, etc.