You shouldn't ask for a nextLong and save it in a byte. The size var should be a long.
To print the square you can neast to simple fors
long i,j;
for(i = 0; i < size; i++)
{
for(j = 0; j < size; j++)
System.out.print(fill);
System.out.println();
}
You could make it perform better, creating a string containing the entire line with the fill character, and then print it the number of rows there are, but for MAX_SIZE = 20 that will do.