Secure Execution of Mobile Java using Static Analysis and Proof Carrying Code