LoginSignup
8
6

More than 5 years have passed since last update.

Java JNA でネイティブライブラリの検索パスを設定する方法

Posted at

Java JNAで、NativeLibrary.addSearchPathを使用することで、ネイティブライブラリ(DLLやSOなど)の検索パスをプログラムから設定することができます。

JNAを使用する場合、ネイティブライブラリ(DLLやsoなど)をパスの通った場所(WindowsだとC:Windows\System32)に置くか、Eclipseを使用している場合だと「実行構成」の「環境」に「PATH」という環境変数を作ってネイティブライブラリの検索場所を指定する、という方法がありますが、どちらも環境設定が若干面倒で、gitやsvnから開発環境をチェックアウトした直後に、その設定を忘れていてマトモに動かない、といったことが結構発生しますので、そのようなケースに便利かと思います。

以下、Tomcat(動作確認環境は Tomcat8 )での使用例です。ネイティブライブラリは WEB-INF/lib 配下に配置している前提です。

TestServletContextListener.java
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import com.sun.jna.NativeLibrary;

@WebListener
public class TestServletContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {

        String path = event.getServletContext().getRealPath("/WEB-INF/lib/");
        NativeLibrary.addSearchPath("hogehoge", path);

    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {

    }

}
8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6