I don't think you need a revolute joint for this, but a rope joint (b2RopeJoint). A revolute joint will make the two object rotate around a single point. The rope joint will keep one swinging from another like a pendulum.
You need to make the pendulum attach with a single rope joint to a static body. Then cut the rope joint when you want it to fall. If gravity is turned on and you don't have any retarding forces, the pendulum should continue indefinitely (or for a really long time depending on numerics).
Take a look at this post that was just done for something like this. Note that the code is also posted on github here. In that case, there were two extra rope joints added to constrain the body so that it could not move beyond the end of the initial swing. I don't think you need those.
To create the pendulum yourself, use something like:
// Calculate the local position of the
// top of screen in the local space
// of the ground box.
CCSize scrSize = CCDirector::sharedDirector()->getWinSize();
b2Vec2 groundWorldPos = b2Vec2((scrSize.width/2)/PTM_RATIO,(scrSize.height)/PTM_RATIO);
b2Vec2 groundLocalPos = m_pGround->GetLocalPoint(groundWorldPos);
// Now create the main swinging joint.
b2RopeJointDef jointDef;
jointDef.bodyA = m_pGround;
jointDef.bodyB = body;
jointDef.localAnchorA = groundLocalPos;
jointDef.localAnchorB = b2Vec2(0.0f,0.0f);
jointDef.maxLength = (groundWorldPos-body->GetWorldCenter()).Length();
jointDef.collideConnected = true;
world->CreateJoint(&jointDef);
NOTE This is in C++, not java (for libgdx), but the approach should be sound and you just have to map the "->" onto the "." where needed.
In my example, it ended up looking like this (image liberated from other posted answer):
Was this helpful?