¶¨ÖÆ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
Ïà¹ØÎĵµ£º
ÍøÂçµÄ¸ÅÄî:Ï໥Á¬½Ó,¶ÀÁ¢×ÔÖ÷
ÍøÂçÓë·Ö²¼Ê½¼¯ÈºÏµÍ³µÄÇø±ð£ºÃ¿¸ö½Úµã¶¼ÊÇһ̨¼ÆËã»ú£¬¶ø²»ÊǸ÷ÖÖ¼ÆËã»úÄÚ²¿µÄ¹¦ÄÜÉ豸¡£
Ip:¾ßÓÐÈ«ÇòΨһÐÔ£¬Ïà¶ÔÓÚinternet£¬IPΪÂß¼µØÖ·£¬TCP/IPÍøÂçÖеÄÿ̨¼ÆËã»ú¶¼ÓÐΨһµÄµØÖ·--IPµØÖ·. Ψһ±êʾһ̨Ö÷»ú
ÔÚJavaÖÐ,ÓÐÒ»¸öÓÃÀ´´æ´¢internetµØÖ·µÄÀà½ÐInetAddress.
Àý:»ñÈ¡±¾» ......
ÕýÔò±í´ïʽÊÇ×Ö·û´®´¦ÀíµÄÖÕ¼«ÎäÆ÷£¬±¾ÎÄÒÔÒ»¸ö¾ßÌåÌâÄ¿¼ò½éjava¶ÔÕýÔò±í´ïʽµÄÖ§³Ö¡£
ÌâÄ¿£º½«Ò»¸ö×Ö·û´®ÖеÄÐÎÈçhref=“XXXX”ºÍ src=“XXXX”µÄ²¿·ÖÈ¡³ö£¬´òÓ¡¡£
´¦ÀíÕýÔò±í´ïʽÖ÷ÒªÓõ½java.util.regex.MatcherºÍ java.util.regex.PatternÁ½¸öÀà¡£
\\²âÊÔÓõÄ×Ö·û´®
String source= "...h ......
java ipµØÖ·×ª»»Îª³¤ÕûÐÍ£»
public class Util {
/**
* ×Ö·û´®ipת»»Îªlong
* @param ×Ö·û´®ip
* @return
*/
public static long getStr ......
Ï̳߳ØÀàΪ java.util.concurrent.ThreadPoolExecutor£¬³£Óù¹Ôì·½·¨Îª£º ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
long keepAliveTime, TimeUnit unit,
BlockingQueue<Runnable> workQueue,
RejectedExecutionHandler handler) corePoolSize£º Ï̳߳ØÎ¬»¤Ï̵߳Ä×îÉÙÊýÁ¿ ......