¶¨ÖÆjavaÐéÄâ»ú
×î½üÓÐÍøÓÑÎÊ£ºÈçºÎÈÃÒ»¸öJARÎļþËæJVMÆô¶¯Ê±ÔËÐУ¿java.exeÊDz»Äܹ»×ö³ÉÕâÑùµÄ£¬²»¹ý¿ÉÒÔ×Ô¼º¶¨ÖÆjava.exe£¬¶¨ÖÆjava.exeÔÚÈçÏÂÇé¿öÓÐÓãº
1.²»Ïë³ÌÐòµÄ½ø³ÌÃûÏÔʾΪjava.exe
2.Ï£Íû³ÌÐòË«»÷¾Í¿ÉÒÔÔËÐС£
ÏÂÃæÊÇÒ»¶ÎʾÀý´úÂ룺
// JVM_CPP.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "windows.h"
#include <jni.h>
typedef jint (JNICALL *JNICREATEPROC)(JavaVM**, void**, void*);
bool setStream(JNIEnv* env, const char* pszFileName, const char* pszMethod);
//Æô¶¯javaÐéÄâ»ú·½·¨
bool startJvm()
{
//jvm¶¯Ì¬¿âµÄ·¾¶
const TCHAR szJvmPath[] = _T("E:\\java\\jdk\\jdk1.6.0\\jre\\bin\\server\\jvm.dll");
//java ÐéÄâ»úµÄÆô¶¯²ÎÊý£¬Ã¿¸ö²ÎÊýдһÏ²»ÄܺÏÔÚÒ»Æðд
int nOptionCount = 2;
JavaVMOption options[2];
options[1].optionString = "-Xmx256M";
//ÉèÖÃclasspath
options[0].optionString = "-Djava.class.path=./Test.jar;";
JavaVMInitArgs vm_args;
vm_args.version = JNI_VERSION_1_4;
vm_args.options = options;
vm_args.nOptions = nOptionCount;
vm_args.ignoreUnrecognized = JNI_TRUE;
//Æô¶¯Àà,×¢Òâ·Ö¸î·ûÊÇ/£¬ÀýÈçÆô¶¯Ààtest.JTestÓ¦¸Ãд³É test/JTest
const char szStartClass[] = "com/kortide/JVM/Test";
//Æô¶¯·½·¨£¬Í¨³£ÊÇmainº¯Êý£¬ÄãÒ²¿ÉÒÔÉ趨³ÉÆäËûº¯Êý
const char szStartMethod[] = "main";
//ÖØµ¼ÏòÎļþ
const char* szStdoutFileName = "stdout.txt";
const char* szStderrFileName = "stderr.txt";
//java³ÌÐòµÄÃüÁîÐвÎÊý
int nParamCount = 2;
const char* szParams[2] =
{
"arg1", "arg2"
};
//¼ÓÔØJVM¡£
HINSTANCE jvmDll = LoadLibrary(szJvmPath);
if (jvmDll == NULL)
{
printf("¼ÓÔØJVM¶¯Ì¬¿â´íÎó¡£%l", ::GetLastError());
return false;
}
//²éÕÒJNI_CreateJavaVM¹ý³Ì¡£
JNICREATEPROC jvmCreateProc = (JNICREATEPROC) GetProcAddress(jvmDll,
"JNI_CreateJavaVM");
if (jvmCreateProc == NULL)
{
FreeLibrary(jvmDll);
prin
Ïà¹ØÎĵµ£º
instanceofÊÇJavaµÄÒ»¸ö¶þÔª²Ù×÷·û£¬ºÍ==£¬>£¬<ÊÇͬһÀà¶«¶«¡£ÓÉÓÚËüÊÇÓÉ×Öĸ×é³ÉµÄ£¬ËùÒÔÒ²ÊÇJavaµÄ±£Áô¹Ø¼ü×Ö¡£ËüµÄ×÷ÓÃÊDzâÊÔËü×ó±ßµÄ¶ÔÏóÊÇ·ñÊÇËüÓұߵÄÀàµÄʵÀý£¬·µ»ØbooleanÀàÐ͵ÄÊý¾Ý¡£¾Ù¸öÀý×Ó£º
¡¡¡¡String s = "I AM an Object!";
¡¡¡¡boolean isObject = s instanceof Object;
¡¡¡¡ÎÒÃÇÉùÃ÷ÁËÒ»¸öStrin ......
Ä¿±ê£ºÊµÏÖÒ»¸öºº×Ö×Ö·û´®°´ººÓïÆ´Òô×Öµä˳ÐòÅÅÐò¡£
ÔÀí£ºÔÚwindows»·¾³µÄgbk×Ö·û¼¯Àºº×ÖÊǰ´ººÓïÆ´Òô×Öµä˳Ðò±àÂëµÄ£¬Èç“´¡”ÊÇ B4A1£¬“´¢”ÊÇB4A2¡£ÕâÀïÓиöÎÊÌâ¾ÍÏñÉÏÃæµÄ´¢ºÍ´¡ÕâÑùµÄͬÒô×ÖÖ»ÄÜ×ñÕÕ±àÂëµÄ˳ÐòÁË£¬ÁíÍâ¶àÒô×ÖÒ²µÃ×ñÕÕ±àÂë˳Ðò¡£Éè¼ÆË¼Â·ÊÇÏȲð·Öºº×Ö×Ö·û´®Îª×Ö·ûÊý×飬»ñµÃà ......
³£ÓõÄÉè¼ÆÄ£Ê½·ÖΪÈçÏ 23 ÖÖģʽ£º
Abstract Factory£º
Ìṩһ¸ö´´½¨Ò»ÏµÁÐÏà¹Ø»òÏ໥ÒÀÀµ¶ÔÏóµÄ½Ó¿Ú£¬¶øÎÞÐèÖ¸¶¨Ëü
ÃǾßÌåµÄÀà¡£
Adapter£º
½«Ò»¸öÀàµÄ½Ó¿Úת»»³É¿Í»§Ï£ÍûµÄÁíÒ»¸ö½Ó¿Ú£¬Ê¹µÃÔÀ´ÓÉÓÚ½Ó¿Ú²»¼æÈݶø²»ÄÜÒ»Æð¹¤×÷µÄÄÇЩÀà¿ÉÒÔÒ»Æð¹¤×÷¡£
Bridge£º
½«
³éÏ󲿷ÖÓëËüµÄʵÏÖ²¿·Ö·ÖÀ룬ʹ֮¿ÉÒÔ¶ÀÁ¢±ä»¯¡ ......
À´×Ô£ºhttp://www.cnblogs.com/echozhjun/archive/2010/01/08/1641970.html
JDK Logger
JDK LoggerÔÚjava.util.logging°üÏÂÃæ£¬×Ô´ÓJDK1.4¾ÍÓÐÁË£¬¿ÉÊÇÒòΪlog4jµÄ´æÔÚ£¬Õâ¸öLoggerÒ»Ö±³ÁĬ×Å¡£Java×Ô´øµÄLogger£¬¼¶±ð±ÈLog4j»¹ÒªÏêϸ£¬µ«ÊÇÈç¹ûÐèÒª×Ô¶¨ÒåÈÕÖ¾Êä³ö¸ñʽ£¬ÐèÒª×Ô¼ºÊµÏÖFormatter£¬ÓÐЩ²»·½±ã¡£
Log4j  ......
½ñÌìÀ´½²Ï¹ØÓÚJavaÒì³£ÎÊÌâ¡£ÆäʵÔÚ¿ª·¢¹ý³ÌÖÐJavaµÄÒì³£´¦Àí²¢Ã»ÓÐÏëÏóÖеÄÄÇô¼òµ¥£¬¼òµ¥µÄ˵Java²»×ãÖ®´¦£¬ÄÇôÒì³£´¦Àí»úÖÆÒ²¿ÉÒÔËãÒ»¸ö£¨¸öÈ˹۵㣩¡£ÎªÊ²Ã´ÎÒ»áÕâÑùÈÏÎªÄØ£¿ÏÂÃæÎÒ½«ÔÚ¿ª·¢¹ý³ÌÖÐÓÃ×Ô¼ºµÄ˼ά·½Ê½À´½âÊÍÏÂÒ쳣ʹÓá£
JavaµÄÒì³£´óÖ·ÖΪ3Àࣺ
ExceptionÀà¡¢RuntimeExceptionÀàºÍErrorÀ࣬£¨¾ßÌåÒâË ......