我设置了一个项目,其资源目录类似于:
[Project]
[java]
MainClass
...
...
[resources]
MyDll.dll
我希望能够使用MyDll.dll
加载System.load()
。我读到能够从jar中执行此操作,我需要先将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
?
答案 0 :(得分:0)
InputStream input = this.getClass().getClassLoader().getResourceAsStream("MyDll.dll");