Of course one way to do it is to make a big production that lists every kind of token except "{" and "}".
Token any() :{Token t;}{ (t=<NUMBER> | t=<IDENTIFIER> | t="(" | ... | ) {return t;} }
But that's not at all elegant.
Instead, you can write a JAVACODE
production that consumes tokens until the final close-brace is found. See https://javacc.java.net/doc/javaccgrm.html#JAVACODE for a similar example.