Как лечить атрибут -classpath Java 10 в JNI - PullRequest
0 голосов
/ 12 января 2019

Мой проект очень зависит от 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 голосов
/ 12 января 2019

Вы должны указать sourcepath . В вашем случае это выглядело бы как

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