1. A protecting method of Java source code, wherein when a first initiating class is invoked, the method comprises: S 1 , the first initiating class reading first cipher data to a memory, decrypting the first cipher data to obtain first plain data, and defining the first plain data as a class loader, wherein the first initiating class is an initiating class of Java program and the first cipher data is data obtained by encrypting the bytecode file of the class loader; S 2 , the class loader reading second cipher data to the memory, decrypting the second cipher data to obtain second plain data, and defining the second plain data as a first class, wherein the first class is a class which is run by a Java virtual machine, and the suffix of the first class is .class, and the second cipher data is obtained by encrypting the bytecode file of the first class; S 3 , the class loader loading a second initiating class to the memory, wherein the second initiating class is an original class in jar packet of Java program; and S 4 , the class loader loading the first class to the Java virtual machine so that the Java virtual machine can invoke a main interface in the second initiating class and run the Java program.