本文参考《较详细的介绍JNI》一文,并添加了一些方法,代码已经过测试,留待日后工作使用。关于JNI的HelloWorld的例子,就不赘述了。
java代码:
1 package com.chnic.service; 2 3 import com.chnic.bean.Order; 4 5 public class Business { 6 static{ 7 System.loadLibrary("FruitFactory"); 8 } 9 10 public Business(){ 11 12 } 13 14 public native double getPrice(String name); 15 public native Order getOrder(String name, int amount); 16 public native Order getRamdomOrder(); 17 public static native void analyzeOrder(Order order); 18 19 public native void showArray(int []nums); 20 21 public native int[] getIntArray(); 22 23 public native String[] getStringArray(String[] ss); 24 25 public native void test2DStringArray(String[][] ss); 26 27 public void notification(){ 28 System.out.println("Got a notification."); 29 } 30 31 public static void notificationByStatic(){ 32 System.out.println("Got a notification in a static method."); 33 } 34 35 public static void main(String...args){ 36 Business bus = new Business(); 37 System.out.println("price:"+bus.getPrice("Apple")); 38 System.out.println("-------------------------"); 39 40 System.out.println("price:"+bus.getPrice("Pear")); 41 System.out.println("-------------------------"); 42 43 System.out.println(bus.getOrder("Apple",23)); 44 System.out.println("-------------------------"); 45 46 System.out.println(bus.getRamdomOrder()); 47 System.out.println("-------------------------"); 48 49 Order order = new Order(); 50 order.setName("orange"); 51 Business.analyzeOrder(order); 52 System.out.println("-------------------------"); 53 54 int[]ia={1,2,3,4}; 55 bus.showArray(ia); 56 System.out.println("-------------------------"); 57 58 int[] iaa = bus.getIntArray(); 59 for(int i:iaa){ 60 System.out.println(i); 61 } 62 System.out.println("-------------------------"); 63 64 String[]abc= {"aa","bb","cc","dd"}; 65 bus.getStringArray(abc); 66 System.out.println("-------------------------"); 67 68 String []abcd = bus.getStringArray(abc); 69 for(String s:abcd){ 70 System.out.println(s); 71 } 72 System.out.println("-------------------------"); 73 74 String[][]test = {{"一行1号","一行二号","一行三号"},{"二行一号","二行二号","二行三号"}}; 75 bus.test2DStringArray(test); 76 System.out.println("-------------------------"); 77 } 78 }