JOAL: Unable to find and load OpenAL library

I wrote a console app that just does the basic init:

ALut.alutInit();

I’m running with 32-bit jdk1.7.0_04 on Windows (my OS is 64-bit but I’m using 32-bit JDK/JRE)

I’ve added Java dependencies to joal.jar and gluegen-rt.jar

I added -Djava.library.path with a directory that contains gluegen-rt.dll and joal_native.dll

When I run, I get:

Exception in thread “main” java.lang.RuntimeException: Can not get proc address for method “alcCaptureCloseDevice”: Couldn’t set value of field “_addressof_alcCaptureCloseDevice” in class net.java.games.joal.impl.ALCProcAddressTable
at com.sun.gluegen.runtime.ProcAddressHelper.resetProcAddressTable(ProcAddressHelper.java:68)
at net.java.games.joal.impl.ALProcAddressLookup.resetALCProcAddressTable(ALProcAddressLookup.java:109)
at net.java.games.joal.impl.ALCImpl.alcOpenDevice(ALCImpl.java:341)
at net.java.games.joal.util.ALut.alutInit(ALut.java:69)
at org.audiotest.Main$OpenALContext.(Main.java:8)
at org.audiotest.Main.main(Main.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.RuntimeException: Unable to find and load OpenAL library
at net.java.games.joal.impl.ALProcAddressLookup$DynamicLookup.dynamicLookupFunction(ALProcAddressLookup.java:66)
at com.sun.gluegen.runtime.ProcAddressHelper.resetProcAddressTable(ProcAddressHelper.java:64)

Hi

At first, you use an obsolete version of JOAL, please switch to JOAL 1.1.3 which is available on the official website of JogAmp.

Then, you won’t have to set the Java library path, just put the JARs containing the native libraries into the same directory than joal.jar and gluegen-rt.jar. After that, if you set the classpath like you already do, JOAL will automatically extract and load the proper native libraries for your operating system and your architecture.

Finally, if you include all JARs containing native libraries, your basic console application will work on other operating systems (GNU Linux, Mac OS X, OpenSolaris) and other architectures (64 bits) too.

JOAL works fine for me, I still use it for my own game, I’m extremely satisfied. Good luck.