我的项目高度依赖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中的替代方法?
答案 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