Search code examples
javaubuntujnlpjappletloadlibrary

System.loadLibrary stuck while reading .so file


I need to include native library into my applet. Everything works on Windows with .dll, but does not work on Linux with .so. I signed the applet, all its resources and created appropriate jnlp file:

<resources os="Windows" arch="x86_64">
    <nativelib href="dll/com/Windows_x64/test.jar"/>
</resources>
<resources os="Linux" arch="amd64">
    <nativelib href="dll/com/Linux_x64/test.jar"/>
</resources>
<resources os="Linux" arch="x86_64">
    <nativelib href="dll/com/Linux_x64/test.jar"/>
</resources>
<resources os="Linux" arch="x86">
    <nativelib href="dll/com/Linux_x32/test.jar"/>
</resources>
<resources os="Linux" arch="i386">
    <nativelib href="dll/com/Linux_x32/test.jar"/>
</resources>

test.jar for linux contains only test.so file and META-INF sign data.

And applet stuck on the following row without any exception: System.loadLibrary("test");

Could somebody please help with/give me a prompt to solve this issue? Please let me know if I need to provide more helpful info?

I already checked the following topic: Java System.loadLibrary call on Linux freezes And did the following test: Created a separate main class and try to load my .so there and it works ok.


Solution

  • test.jar for linux contains only test.so file and META-INF sign data.

    The name of the lib should be libtest.so.