Я создал библиотеку Java (SampleJar.jar). Эта библиотека загружает или обращается к DLL (SampleDll.dll), созданной в c ++. Я использовал JNA, так как он проще в использовании, чем JNI. SampleDll должен получить доступ к файлу с именем Config.bin в папке «Test». Однако, когда я пытаюсь запустить мое приложение, оно возвращает ошибку, что файл не существует. Ниже приведен код SampleJar, который вызывает SampleDll:
package com.Sample;
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface SampleLibrary extends Library
{
SampleLibrary instance = (SampleLibrary )Native.loadLibrary("SampleDll", com.Sample.SampleLibrary.class);
public int OpenSession(path);
}
Класс, который вызывает метод OpenSession (другой класс, связанный с SampleJar):
public class NewClass
{
public NewClass(String filePath)
{
SampleLibrary.instance.OpenSession(filePath);
}
}
А это код класса Main, который вызывает SampleJar:
import com.Sample.NewClass;
import com.Sample.SampleLibrary;
public static void main(String[] args)
{
NewClass newClass = new NewClass (System.getProperty("user.dir"));
}
Я экспортировал исполняемый jar-файл своего приложения и назвал его SampleJnaApplication.jar. Я запускаю файл jar с помощью этой команды:
java -jar SampleJnaApplication.jar
Ниже приведена структура файла:
C:\SampleApplication
\-- SampleJnaApplication.jar
\-- SampleDll.dll
\-- Test
\-- Config.bin
Что может быть причиной этой проблемы?