¶¨ÖÆ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
Ïà¹ØÎĵµ£º
ʹÓÃJava²Ù×÷Îı¾ÎļþµÄ·½·¨Ïê½â
ÕªÒª: ×î³õjavaÊDz»Ö§³Ö¶ÔÎı¾ÎļþµÄ´¦ÀíµÄ£¬ÎªÁËÃÖ²¹Õâ¸öȱº¶¶øÒýÈëÁËReaderºÍWriterÁ½¸öÀà
×î³õjavaÊDz»Ö§³Ö¶ÔÎı¾ÎļþµÄ´¦ÀíµÄ£¬ÎªÁËÃÖ²¹Õâ¸öȱº¶¶øÒýÈëÁËReaderºÍWriterÁ½¸öÀ࣬ÕâÁ½¸öÀà¶¼ÊdzéÏóÀ࣬WriterÖÐ write(char[] ch,int off,int
length)£¬flush()ºÍclose()·½·¨Îª³éÏó·½· ......
µÚÒ»ÖÖ:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
ЧÂʸß,ÒÔºóÒ»¶¨ÒªÊ¹ÓôËÖÖ·½Ê½£¡
µÚ¶þÖÖ:
Map map = new HashMap();
Iterator iter = ma ......
Ä¿±ê£ºÊµÏÖÒ»¸öºº×Ö×Ö·û´®°´ººÓïÆ´Òô×Öµä˳ÐòÅÅÐò¡£
ÔÀí£ºÔÚwindows»·¾³µÄgbk×Ö·û¼¯Àºº×ÖÊǰ´ººÓïÆ´Òô×Öµä˳Ðò±àÂëµÄ£¬Èç“´¡”ÊÇ B4A1£¬“´¢”ÊÇB4A2¡£ÕâÀïÓиöÎÊÌâ¾ÍÏñÉÏÃæµÄ´¢ºÍ´¡ÕâÑùµÄͬÒô×ÖÖ»ÄÜ×ñÕÕ±àÂëµÄ˳ÐòÁË£¬ÁíÍâ¶àÒô×ÖÒ²µÃ×ñÕÕ±àÂë˳Ðò¡£Éè¼ÆË¼Â·ÊÇÏȲð·Öºº×Ö×Ö·û´®Îª×Ö·ûÊý×飬»ñµÃà ......
public static void replaceString(String source,String oldStr,String newStr){
System.out.println(source);
String result = source.replaceAll("(?i)"+oldStr
, newStr); //´óСд²»Ãô ......
Ï̳߳ØÀàΪ java.util.concurrent.ThreadPoolExecutor£¬³£Óù¹Ôì·½·¨Îª£º ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
long keepAliveTime, TimeUnit unit,
BlockingQueue<Runnable> workQueue,
RejectedExecutionHandler handler) corePoolSize£º Ï̳߳ØÎ¬»¤Ï̵߳Ä×îÉÙÊýÁ¿ ......