示例#1
0
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow){
    if (!extractResource()) return 3;
	if (!loadJVM()) return 1;
	if (!runJava()) return 2;
		
	return 0;
}
bool JavaBinderyImpl::showConsole()
{
    if (!loadJVM())
        return false;
        
    std::vector<Value> params;
    Value retval;
    callInstance(Value::BIND_VOID, gatewayObj, "showConsole",
             "()Z", params, retval);
    return retval.getBoolean();
}
bool JavaBinderyImpl::scriptRunFile(const String &lang, const String &fname)
{
    if (!loadJVM())
        return false;

    std::vector<Value> params;
    Value langParm(lang);
    params.push_back(langParm);
    Value fnameParm(fname);
    params.push_back(fnameParm);
    Value retval;
    callInstance(Value::BIND_VOID, gatewayObj, "scriptRunFile",
             "(Ljava/lang/String;Ljava/lang/String;)Z", params, retval);
    return retval.getBoolean();
}
示例#4
0
文件: jre.cpp 项目: littlemole/moe
JNIEnv* JRE::createJVM(bool debug)
{
	int noptions = 7 + (debug ? 1 : 0);
	options_ = new JavaVMOption[noptions];

	//C:\\Program Files (x86)\\Java\\jre6\\lib\\rt.jar
	//std::string classpath = "-Djava.class.path=D:\\workspace\\dispdrivertest\\bin;" + mol::tostring(classpath_);
	//std::string libpath   = "-Djava.library.path=D:\\workspace\\dispdrivertest\\bin" +  mol::tostring(libpath_);

	mol::win::AppBase& app = mol::App();
	//JREApp& app = mol::app<JREApp>();
	std::wstring path =  app.getAppPath();
	path = mol::Path::pathname(path);
	path = path + _T("\\lib");

	std::string classpath = "-Djava.class.path=" + mol::tostring(path) + "\\classes;" + mol::tostring(path) + "\\dispdriver.jar";
	if ( !classpath_.empty() )
	{
		classpath += ";" + mol::tostring(classpath_);
	}
	std::string libpath   = "-Djava.library.path=" +  mol::tostring(path) ;
	if ( !libpath_.empty() )
	{
		libpath += ";" + mol::tostring(libpath_);
	}

	options_[0].optionString = (char*)classpath.c_str();
	options_[1].optionString = (char*)libpath.c_str();
	options_[2].optionString = "-Xdebug";
	options_[3].optionString = "-Xnoagent";
	options_[4].optionString = "-Djava.compiler=NONE";
	options_[5].optionString = "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005";
	options_[6].optionString = "-Dsun.java2d.d3d=false";

	if ( debug )
		options_[7].optionString = "-verbose:jni";

	vm_args_.version             = JNI_VERSION_1_6;
	vm_args_.nOptions            = noptions;
	vm_args_.options             = options_;
	vm_args_.ignoreUnrecognized  = false;

	if (!jruntime_)
		jruntime_ = loadJVM();
	if (!jruntime_)
	{
		cry();
		return 0;
	}
			
	CreateJavaVM createJavaVM = (CreateJavaVM) ::GetProcAddress( jruntime_, "JNI_CreateJavaVM" );

	if (!createJavaVM)
		return false;

	jint res = createJavaVM( &jvm_, (void**)&env_, &vm_args_ );
	if( res != 0 )
		return 0;

	jvm_->AttachCurrentThread((void**)&env_, &vm_args_);

	return env_;
}