1. A method of running an application in a process virtual machine (PVM) on a computing device using a dynamically-linked module (DLM) with an integrity self-check feature, the DLM being written in PVM-native bytecode, the PVM being configured to execute applications stored as PVM-native bytecode within a single code file associated with that application, the method comprising: dynamically linking the application to the DLM by loading the PVM-native bytecode of the DLM from a resource file separate from the single code file of the application; performing the integrity self-check feature on the DLM to ensure the integrity of the PVM-native bytecode of the DLM; and in response to the DLM passing the integrity self-check, calling functions of the DLM from within the application.