A system for generating a virtual server image for cloud deployment on a hypervisor, comprising: a computer including a processor, memory and operating system; a memory space for creating a virtual server image; and wherein a Java virtual machine appliance builder is used to generate a virtual server image containing both a Java software application and a Java virtual machine for executing the Java software application, including performing the steps comprising: reading an appliance configuration file, wherein the appliance configuration file is used to locate code and data for the Java software application; writing bootloader code into the virtual server image, if the hypervisor does not act as a bootloader, writing a bootable component of a Java virtual machine into the virtual server image, writing a non-bootable component of a Java virtual machine, together with the code and data for the Java software application, into the virtual server image, and configuring the bootable component to load and execute the non-bootable component, including updating the bootable component with the location of the non-bootable component and configuration settings provided by the appliance configuration file; and outputting the virtual server image, wherein the virtual server image is deployable throughout a cloud comprising a plurality of physical computing machines that includes the hypervisor, such that the bootable component is preconfigured to boot, and load and execute the non-bootable component. a computer including a processor, memory and operating system; a memory space for creating a virtual server image; and wherein a Java virtual machine appliance builder is used to generate a virtual server image containing both a Java software application and a Java virtual machine for executing the Java software application, including performing the steps comprising: reading an appliance configuration file, wherein the appliance configuration file is used to locate code and data for the Java software application; writing bootloader code into the virtual server image, if the hypervisor does not act as a bootloader, writing a bootable component of a Java virtual machine into the virtual server image, writing a non-bootable component of a Java virtual machine, together with the code and data for the Java software application, into the virtual server image, and configuring the bootable component to load and execute the non-bootable component, including updating the bootable component with the location of the non-bootable component and configuration settings provided by the appliance configuration file; and outputting the virtual server image, wherein the virtual server image is deployable throughout a cloud comprising a plurality of physical computing machines that includes the hypervisor, such that the bootable component is preconfigured to boot, and load and execute the non-bootable component. reading an appliance configuration file, wherein the appliance configuration file is used to locate code and data for the Java software application; writing bootloader code into the virtual server image, if the hypervisor does not act as a bootloader, writing a bootable component of a Java virtual machine into the virtual server image, writing a non-bootable component of a Java virtual machine, together with the code and data for the Java software application, into the virtual server image, and configuring the bootable component to load and execute the non-bootable component, including updating the bootable component with the location of the non-bootable component and configuration settings provided by the appliance configuration file; and outputting the virtual server image, wherein the virtual server image is deployable throughout a cloud comprising a plurality of physical computing machines that includes the hypervisor, such that the bootable component is preconfigured to boot, and load and execute the non-bootable component.