其实java的虚拟机都是最后封装成系统运行库(动态连接库),windows下为dll(jvm.dll),Unix下为.so(jvm.so),而我们常使用的java程序,其实只是一个简单的jvm的封装调用,所有有了jvm你当然可以自己写出自己的调用程序(这个我做过),基本上使用jni技术,在c++中创建虚拟机,然后找到类的main方法,传入参数,执行main方法,然后等待虚拟机结束就可以了,后来我看到过java.exe的源代码,和我的调用方法基本上是一致的,只是读取配置的功能要强一些。如果你对此感兴趣,你不妨也自己研究研究jni,它既可以在java中调用本地方法,也可以在本地方法中调用java程序(这一般不被人所用)。