返回信息流java代码中调用c写的本地方法,在HelloWorld.java中声明为:
private static native byte[][] displayHelloWorld(String name) throws UnknownHostException;
现在我有两个问题:
1、对应的c的函数是怎么写的?我在HelloWorld.c中写了
JNIEXPORT jbyte[][] JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env,jobject obj,jstring name)
可是编译c文件的时候报错:HelloWorld.c:5: error: expected identifier or ‘(’ before ‘[’ token
请问这是怎么回事?
2、java中的UnknownHostException在c中是怎么实现的?需要在c中实现吗?
完整代码见下面:
HelloWorld.java
Java code
import java.net.UnknownHostException;
class HelloWorld {
private static native byte[][] displayHelloWorld(String name) throws UnknownHostException;
static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
HelloWorld helloWorld = new HelloWorld();
try{
helloWorld.displayHelloWorld("www.baidu.com");
} catch (UnknownHostException e) {}
}
}
HelloWorld.c
C/C++ code
#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT jbyte[][] JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env,jobject obj,jstring name) {
printf("Hello World!\n");
printf("%s",name);
jbyte[][] a = {{(jbyte)119,(jbyte)75,(jbyte)217,(jbyte)109}};
return a;
}
这是一条镜像帖。来源:北邮人论坛 / java / #17396同步于 2011/3/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
问一个关于用JNI传递字符串的问题
genius1wjc
2011/3/8镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
【 在 slacker 的大作中提到: 】
: UnknownHostException是抛出异常,这个JAVA中有讲的,专门作为一张讲的,
: --
我是问怎么用c实现。。。