如何在JNI中对待-classpath属性Java 10

时间:2019-01-12 00:46:45

标签: java java-native-interface java-10

我的项目高度依赖JNI与C代码进行通信。我已经使用Java 8多年了。我决定升级到Java 10,但是在JNI实施方面遇到了问题。

我在Java类中有一些导入的库,其中包含如下的本地方法:

import com.abc.repair.Results;

public class DataSupport {

    public native Results getPartResults(String x);
    public native Results getItemResults(String x);
}

Java 8实现:

javah -jni -classpath ../lib/Results.jar com.abc.jni.DataSupport

Java 10实现:

javac -h . ../build/com/abc/jni/DataSupport.java

如果没有其他任何库的导入,则Java 10的实现效果很好。但是,如果有任何导入,它就无法建立com.abc.repair.Results不存在的抱怨。以与Java 8中相同的方式添加类路径并不能解决问题。

如何使用-classpath或Java 10中的替代方法?

1 个答案:

答案 0 :(得分:2)

您必须指定 sourcepath 。就您而言,它看起来像是

with cte as (
  select
    id, date, team,
    max (date) over (partition by team) as max_date
  from t
)
select id
from cte
where date = max_date