diff options
-rw-r--r-- | .classpath | 1 | ||||
-rw-r--r-- | nbproject/project.properties | 7 | ||||
-rw-r--r-- | src/com/jogamp/opencl/JOCLJNILibLoader.java | 18 |
3 files changed, 21 insertions, 5 deletions
@@ -5,5 +5,6 @@ <classpathentry kind="src" path="test"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/jogamp"/> + <classpathentry combineaccessrules="false" kind="src" path="/gluegen"/> <classpathentry kind="output" path="build"/> </classpath> diff --git a/nbproject/project.properties b/nbproject/project.properties index 5d0b8189..f9458c74 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -75,17 +75,18 @@ manifest.file=${rootrel.build}/manifest.mf meta.inf.dir=${src.dir}/META-INF platform.active=default_platform run.classpath=\ - ${javac.classpath}:\ + ${dist.jar}:${javac.classpath}:\ ${build.classes.dir} # Space-separated list of JVM arguments used when running the project # (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value # or test-sys-prop.name=value to set system properties for unit tests): -run.jvmargs=${jvmDataModel.arg} -Xmx256m -Djava.library.path=\ +run.jvmargs=${jvmDataModel.arg} -Xmx256m \ + -Djava.library.path=\ "${basedir}/${rootrel.build}/natives/jocl${path.separator}\ ${jogl.root}/${rootrel.build}/lib${path.separator}\ ${gluegen.root}/${rootrel.build}/obj" run.test.classpath=\ - ${javac.test.classpath}:\ + ${dist.jar}:${javac.test.classpath}:\ ${build.test.classes.dir} source.encoding=UTF-8 source.reference.gluegen-rt.jar=${gluegen.root}/src/java:${gluegen.root}/${rootrel.build}/gensrc/java diff --git a/src/com/jogamp/opencl/JOCLJNILibLoader.java b/src/com/jogamp/opencl/JOCLJNILibLoader.java index 4ee99f1a..328c2237 100644 --- a/src/com/jogamp/opencl/JOCLJNILibLoader.java +++ b/src/com/jogamp/opencl/JOCLJNILibLoader.java @@ -28,8 +28,13 @@ package com.jogamp.opencl; +import java.security.AccessController; +import java.security.PrivilegedAction; + import com.jogamp.common.jvm.JNILibLoaderBase; import com.jogamp.common.os.NativeLibrary; +import com.jogamp.common.os.Platform; +import com.jogamp.common.util.cache.TempJarCache; /** @@ -43,7 +48,16 @@ class JOCLJNILibLoader extends JNILibLoaderBase { * @return Returns libOpenCL represented as NativeLibrary. */ static NativeLibrary loadOpenCL() { - loadLibrary("jocl", null, false); - return NativeLibrary.open("OpenCL", JOCLJNILibLoader.class.getClassLoader()); + return AccessController.doPrivileged(new PrivilegedAction<NativeLibrary>() { + public NativeLibrary run() { + Platform.initSingleton(); + final String libName = "jocl"; + if(TempJarCache.isInitialized() && null == TempJarCache.findLibrary(libName)) { + addNativeJarLibs(JOCLJNILibLoader.class, "jocl", null ); + } + loadLibrary(libName, false); + return NativeLibrary.open("OpenCL", JOCLJNILibLoader.class.getClassLoader()); + } + }); } } |