jzy3d / jogl-maven-deployer Goto Github PK
View Code? Open in Web Editor NEWScripts to make a maven distribution out of JOGL 2.4
Scripts to make a maven distribution out of JOGL 2.4
It's helpful for gluegen-rt-v2.4.0-rc4.jar
and gluegen-rt-v2.4.0-rc4-natives-macosx-universal.jar
to be installed to the same directory:
This enables compatibility with calls such as:
if (TempJarCache.initSingleton() && TempJarCache.isInitialized(true)) {
boolean located = JNILibLoaderBase.addNativeJarLibs(new Class<?>[] { jogamp.common.Debug.class }, null);
}
addNativeJarLibs
locates gluegen-rt-v2.4.0-rc4.jar
correctly, and assumes that gluegen-rt-v2.4.0-rc4-natives-macosx-universal.jar
will be located next to it.
You can achieve this by making the two artifacts agree on artifactId, but differ by classifier:
"$MVN" install:install-file -DgroupId=org.jogamp.gluegen -DartifactId=gluegen-rt -Dversion="$version" -Dfile="${LIB}/gluegen-rt.jar" -Dpackaging=jar
"$MVN" install:install-file -DgroupId=org.jogamp.gluegen -DartifactId=gluegen-rt -Dclassifier=natives-macosx-universal -Dversion="$version" -Dfile="${LIB}/gluegen-rt-natives-macosx-universal.jar" -Dpackaging=jar
"$MVN" install:install-file -DgroupId=org.jogamp.jogl -DartifactId=jogl-all -Dversion="$version" -Dfile="${LIB}/jogl-all.jar" -Dpackaging=jar
"$MVN" install:install-file -DgroupId=org.jogamp.jogl -DartifactId=jogl-all -Dclassifier=natives-macosx-universal -Dversion="$version" -Dfile="${LIB}/jogl-all-natives-macosx-universal.jar" -Dpackaging=jar
When I build my application with this jogl version (that also works on macOS M1 hardware), I get the following issue when OpenGl is initialized on Linux Mint 20:
Warning: Caught Exception while retrieving executable temp base directory:
java.io.IOException: Could not determine a temporary executable directory
at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1336)
at com.jogamp.common.util.cache.TempFileCache.(TempFileCache.java:84)
at com.jogamp.common.util.cache.TempJarCache.initSingleton(TempJarCache.java:96)
at com.jogamp.common.os.Platform$1.run(Platform.java:313)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at com.jogamp.common.os.Platform.(Platform.java:290)
at com.jogamp.opengl.GLProfile.(GLProfile.java:154)
at com.ariesproductions.imageViewer.ImageViewerInitializer.init(ImageViewerInitializer.java:117)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.initialize(AstroPixelProcessor.java:7222)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.(AstroPixelProcessor.java:1482)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor$1.run(AstroPixelProcessor.java:1090)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Can't load library: /opt/astropixelprocessor/natives/linux-amd64/libgluegen_rt.so
at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.base/java.lang.Runtime.load0(Unknown Source)
at java.base/java.lang.System.load(Unknown Source)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:625)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:107)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:488)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:427)
at com.jogamp.common.os.Platform$1.run(Platform.java:321)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at com.jogamp.common.os.Platform.(Platform.java:290)
at com.jogamp.opengl.GLProfile.(GLProfile.java:154)
at com.ariesproductions.imageViewer.ImageViewerInitializer.init(ImageViewerInitializer.java:117)
So the loading of libraries is not working for some reason. It does work on Fedora 28 and Windows 10 and macOS Big Sur.
If I package my application with these jars:
https://jogamp.org/deployment/archive/rc/v2.4.0-rc-20210111/fat/
all works on all the platforms, except on the M1 hardware.
It seems like a very weird issue, I can see that /tmp folders are created to copy and then load the libraries, But somehow the libraries are not copied. And why it does work on the regular JOGL release and not in your maven M1 release is the question I think.
Please let me know if you need more info to solve this issue and thank you very much for your maven deployer and macOS M1 compiled version.
Mabula
on MAcbook pro M1, opegl is running absolutely fine but when I try to use openAL, it gives error in loading library
com.jogamp.openal.ALException: java.lang.ExceptionInInitializerError
at com.jogamp.openal.ALFactory.initialize(ALFactory.java:102)
at com.jogamp.openal.ALFactory.getALC(ALFactory.java:137)
at com.jogamp.openal.util.ALut.alutInit(ALut.java:64)
at org.shikhar.simphy.audio.impl.SoundManager.initialize(SoundManager.java:59)
at org.shikhar.simphy.Simphy.<init>(Simphy.java:1777)
at org.shikhar.simphy.SplashWindow.invokeMain(SplashWindow.java:135)
at org.shikhar.simphy.SplashWindow.main(SplashWindow.java:85)
Caused by: java.lang.ExceptionInInitializerError
at com.jogamp.openal.ALFactory.initialize(ALFactory.java:91)
... 6 more
Caused by: java.lang.RuntimeException: Couln't load native AL/JNI glue library
at jogamp.openal.ALImpl$1.run(ALImpl.java:1618)
at jogamp.openal.ALImpl$1.run(ALImpl.java:1608)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at jogamp.openal.ALImpl.<clinit>(ALImpl.java:1608)
... 7 more
I have added jogl-all, gluegen-rt, joal and all3 corressponding mac universal native jars in classpath. Do i need to add dylibs somewhere?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.