Java启动外壳程序的开发

来源:互联网 发布:0信誉淘宝店铺转让协议 编辑:程序博客网 时间:2024/06/07 03:32

Java程序的发布一般都是通过JAR发布,但是通过JAR发布一般不是很稳定,因为和系统环境相关,在有的系统环境比较混乱的情况下,无法执行JAR文件,因此一般通过捆绑JRE和开发一个外壳程序来达到。

捆绑JRE一般是直接拷贝到程序目录下,有安装程序,如InstallShield或InstallAnywhere即可完成。

而外壳程序则需要自己开发。示范代码如下:

typedef struct
{
    CreateJavaVM_t CreateJavaVM;
    GetDefaultJavaVMInitArgs_t GetDefaultJavaVMInitArgs;
} InvocationFunctions;

...

int APIENTRY WinMain(HINSTANCE hInstance,
      HINSTANCE hPrevInstance,
      LPSTR lpCmdLine,
      int nShowCmd )
{
 SetThreadLocale(GetSystemDefaultLCID());

//JRE环境和程序环境的获取

JavaVMOption options[3];
 JavaVMInitArgs vm_args;

...

//确定程序的运行参数 

JavaVM *vm = 0;
 JNIEnv *env = 0;
 jobjectArray mainArgs;
 InvocationFunctions ifn;

LoadJavaVM(jvmPath, &ifn);

ifn.CreateJavaVM(&vm, (void**)&env, &vm_args);

//获取主类以及程序运行参数

...

//调用主函数

env->CallStaticVoidMethod(mainClass, mainMethodID, mainArgs);
 vm->DetachCurrentThread();

}

原创粉丝点击