重载JNI方法

时间:2015-02-20 19:46:25

标签: java java-native-interface overloading

我有一个带有两个参数的现有JNI方法。已经存在了一段时间,在使用中,所以我不想改变它,以免愤怒的客户的愤怒被释放。

但是,我现在需要进行调整。

所以,我想,使用额外参数制作第二个重载方法,并弃用双参数版本。那部分很好,jar构建并运行没有问题。

问题出现在C ++方面...我定义了两个方法,一个是另一个的包装器(两个参数调用三个参数版本),但是,当我去导出这两个方法时,我收到:< / p>

Error   1   error C2733: second C linkage of overloaded function 'Java_com_xxx' not allowed

那么,我该怎么做才能保留旧方法名称并使用新参数添加新方法?这可行吗?

1 个答案:

答案 0 :(得分:0)

在Java文件上运行javah,声明本机方法,您将看到需要两个不同的Java_com_xxx函数。 C级声明必须是唯一的。