<p>There have been a few questions asked here about why you can't define static methods within interfaces, but none of them address a basic inconsistency: why can you define static fields and static inner types within an interface, but not static methods?</p>

<p>Static inner types perhaps aren't a fair comparison, since that's just syntactic sugar that generates a new class, but why fields but not methods?</p>

<p>An argument against static methods within interfaces is that it breaks the virtual table resolution strategy used by the JVM, but shouldn't that apply equally to static fields, i.e. the compiler can just inline it?</p>

<p>Consistency is what I desire, and Java should have either supported no statics of any form within an interface, or it should be consistent and allow them.  </p>

Two main reasons spring to mind:
Static methods in Java cannot be overridden by subclasses, and this is a much bigger deal for methods than static fields.  In practice, I've never even wanted to override a field in a subclass, but I override methods all the time.  So having static methods prevents a class implementing the interface from supplying its own implementation of that method, which largely defeats the purpose of using an interface.
Interfaces aren't supposed to have code; that's what abstract classes are for.  The whole point of an interface is to let you talk about possibly-unrelated objects which happen to all have a certain set of methods.  Actually providing an implementation of those methods is outside the bounds of what interfaces are intended to be.