3.ͨ¹ýJNI¼ÓÔØjavaÐéÄâ»ú
Ç°ÃæÒѾ·ÖÎöÁËjavaÃüÁî¼ÓÔØjavaÐéÄâ»úµÄ·½·¨£¬¼´Í¨¹ýJNIºÍÐéÄâ»ú½»»¥¡£Òò´ËÎÒÃÇ¿ÉÒÔºÜÈÝÒ×µÄ×Ô¼ºÐ´ÏàÓ¦µÄÆô¶¯´úÂ룬ʵÏÖÔÚC++³ÌÐòÖÐÖ´ÐÐjava³ÌÐò£¬µ÷ÓÃjavaÀàµÄ·½·¨¡£
Òª²âÊÔµÄJavaÀà(Test.java)µÄ´úÂëÊÇ£º
public class Test {
public Test(){
System.out.println("Test's constructor");
}
public void sayHello(){
System.out.println("Test object say : Hello!");
}
public static int add(int arg1,int arg2){
return arg1 + arg2;
}
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
¼ÓÔØjvmµÄC++(StartJVM.cpp)´úÂëÈçÏ£º
/*
* startjvm.cpp
*
* Created on: 2010-1-28
* Author: Xiutao Zang
*/
#include <iostream>
#include <jni.h>
using namespace std;
int main()
{
JavaVMOption options[1];
options[0].optionString = "-Djava.class.path=.";
JavaVMInitArgs args;
memset(&args, 0, sizeof(args));
args.version = JNI_VERSION_1_2;
args.nOptions = 1;
args.options = options;
args.ignoreUnrecognized = JNI_FALSE;
JNIEnv *env = 0;
JavaVM *vm = 0;
jint result = JNI_CreateJavaVM(&vm, (void **)&env, &args);
if (result == JNI_OK)
{
cout << "create the jvm successfully!" << endl;
jclass mainClass = env->FindClass("Test");
if (mainClass != 0)
{
cout << "find the main class successfully!" << endl;
jclass stringClass = env->FindClass("java/lang/String");
enum
{
LENGTH = 2
};
const char *mainParams[LENGTH] = { "Hello ", "World!" };
jstring jstringTemp;
jobjectArray mainArgs = env->NewObjectArray(LENGTH, stringClass, 0);
for (int i = 0; i < LENGTH; i++)
{
jstringTemp = env->NewStringUTF(mainParams[i]);
env->SetObjectArrayElement(mainArgs, i, jstringTemp);
}
jmethodID mainID
Ïà¹ØÎĵµ£º
ava IOѧϰ±Ê¼Ç£º¸ÅÄîÓëÔÀí
Ò»¡¢¸ÅÄî
JavaÖжÔÎļþµÄ²Ù×÷ÊÇÒÔÁ÷µÄ·½Ê½½øÐеġ£Á÷ÊÇJavaÄÚ´æÖеÄÒ»×éÓÐÐòÊý¾ÝÐòÁС£Java½«Êý¾Ý´ÓÔ´£¨Îļþ¡¢ÄÚ´æ¡¢¼üÅÌ¡¢ÍøÂ磩¶ÁÈëµ½ÄÚ´æÖУ¬ÐγÉÁËÁ÷£¬È»ºó½«ÕâЩÁ÷»¹¿ÉÒÔдµ½ÁíÍâµÄÄ¿µÄµØ£¨Îļþ¡¢ÄÚ´æ¡¢¿ØÖÆÌ¨¡¢ÍøÂ磩£¬Ö®ËùÒÔ³ÆÎªÁ÷£¬ÊÇÒòΪÕâ¸öÊý¾ÝÐòÁÐÔÚ²»Í¬Ê±¿ÌËù²Ù ......
JAVA¿ª·¢Õß×ȥµÄ20¸öÓ¢ÎÄÍøÕ¾
1.[http://www.javaalmanac.com] – Java¿ª·¢ÕßÄê¼øÒ»ÊéµÄÔÚÏß°æ±¾. ÒªÏë¿ìËٲ鵽ijÖÖJava¼¼ÇɵÄÓ÷¨¼°Ê¾Àý´úÂë, ÕâÊÇÒ»¸ö²»´íµÄÈ¥´¦.
2.[http://www.onjava.com] – O’ReillyµÄJavaÍøÕ¾. ÿÖܶ¼ÓÐÐÂÎÄÕÂ.
3.[http://java.sun.com] – ¹Ù·½µÄJava¿ª·¢ÕßÍ ......
package Utils.Sort;
/**
*ÀûÓÃÑ¡ÔñÅÅÐò·¨¶ÔÊý×éÅÅÐò£¬Êý×éÖÐÔªËØ±ØÐëʵÏÖÁËComparable½Ó¿Ú¡£
*/
public class ChooseSort implements SortStrategy
{
/**
*¶ÔÊý×éobjÖеÄÔªËØÒÔÑ¡ÔñÅÅÐòËã·¨½øÐÐÅÅÐò
&n ......
ÔÚJava±àд¾ßÓÐÁ¬¹á±ä»¯µÄ´°¿Ú³ÌÐòʱ£¬Í¨³£µÄ°ì·¨ÊÇÔÚ×ÓÀàÖи²¸Ç¸¸ÀàµÄpaint(Graphics)·½·¨£¬ÔÚ·½·¨ÖÐʹÓÃGUIº¯ÊýʵÏÖ´°¿ÚÖØ»æµÄ¹ý³Ì¡£Á¬¹á±ä»»µÄ´°¿Ú»á²»¶ÏµØµ÷ÓÃupdate(Graphics)º¯Êý£¬¸Ãº¯Êý×Ô¶¯µÄµ÷ÓÃpaint(Graphics)º¯Êý¡£ÕâÑù¾Í»á³öÏÖÉÁ˸µÄÇé¿ö¡£
ΪÁ˽â¾öÕâÒ»ÎÊÌ⣬¿ÉÒÔÓ¦ÓÃË«»º³å¼¼Êõ¡£¿ÉÒÔͨ¹ý½ØÈ¡ÉÏÊö¹ý³Ì£¬¸ ......
×÷ΪJava³ÌÐòÔ±À´Ëµ£¬×îÍ´¿àµÄÊÂÇéιýÓÚ¿ÉÒÔÑ¡ÔñµÄ·¶Î§Ì«¹ã£¬¿ÉÒÔ¶ÁµÄÊéÌ«¶à£¬ÍùÍùÈÝÒ×ÎÞËùÊÊ´Ó¡£ÎÒÏë¾ÍÎÒ×Ô¼º¶Á¹ýµÄ¼¼ÊõÊé¼®ÖÐÌôÑ¡³öÀ´Ò»Ð©£¬°´ÕÕѧϰµÄÏȺó˳Ðò£¬ÍƼö¸ø´ó¼Ò£¬ÌرðÊÇÄÇЩÏë²»¶ÏÌá¸ß×Ô¼º¼¼ÊõˮƽµÄJava³ÌÐòÔ±ÃÇ¡£
Ò»¡¢Java±à³ÌÈëÃÅÀà
¶ÔÓÚûÓÐJava±à³Ì¾ÑéµÄ³ÌÐòÔ±ÒªÈëÃÅ£¬Ëæ±ã¶ÁʲôÈëÃÅÊé¼®¶¼Ò»Ñù£¬Õâ ......