0
У меня есть проект создать с каталогом ресурсов похожее на это:Извлечение DLL из Jar
[Project]
[java]
MainClass
...
...
[resources]
MyDll.dll
Я хочу, чтобы иметь возможность загружать MyDll.dll
с помощью System.load()
. Я читал, что, чтобы сделать это из банки, мне нужно сначала извлечь DLL во временное место. В настоящее время я использую этот код для этого:
try {
InputStream input = this.class.getResourceAsStream("MyDll.dll");
byte[] buffer = new byte[1024];
int read = -1;
File temp = File.createTempFile("MyDll.dll", "");
FileOutputStream output = new FileOutputStream(temp);
while ((read = input.read(buffer)) != -1) {
output.write(buffer, 0, read);
}
output.close();
input.close();
System.load(temp.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
}
Однако, я думаю, что это не поиск файла. input
всегда null
. Есть ли способ найти MyDll.dll
в папке ресурсов?
К сожалению, это не сработало. Он по-прежнему возвращает null. – Panda
@ grandmind1 попробуйте с загрузчиком классов, и вы уверены, что файл существует?) –
Только ответы на код обычно не помогают. Добавьте некоторое объяснение. –