This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
Without trying to debug your program, see if this gives you enough clues to find the problem.
You say you have a null pointer exception on the line " int a = frac1.getNumerator();" that means that frac1 is null, and therefore the program cannot "dereference" it (that's what it is called when you use a period to access a method or other element inside an object). So you are passing a null into the compare method somehow. If you put a trace statement indicating where you are in the array, you could determine what elements are getting passed in.
Your selection sort does not look right, but I'm afraid it's too late at night for me to take it apart now. try debugging that on a 4- or 5-element array, and step through the different loops.