Without loss of generality, assume a > b [ Or the otherway for that matter, because a != b ]
Rewriting the equation we get (a/b)^b = b^(a-b)
Right side is integer raised to integer and thus an integer and left side is fraction raised to integer. So that fraction is not really a fraction.
In other words a is a multiple of b
=> a = c * b where c is an integer > 1 [ Because a != b ]
=> c^b = b^(b * ( c - 1)) [ Substituting a with c*b in the original equation ]
=> c = b^(c-1) [ Taking bth root on both sides ]
c != 1 [ Because a != b ]
c != 3 [ Because b^2 = 3 has no integer solutions ]
c != 4 [ Because b^3 = 4 has no integer solutions ]
And so on..
=> c = 2 is the only possible solution
=> Substituting c with 2 we get b = 2 and a = 4
Edits: Formatting and Explanation