#get jogamp and robovm wget https://libgdx.badlogicgames.com/robovm/robovm-1.6.1-SNAPSHOT.tar.gz wget http://jogamp.org/deployment/jogamp-current/fat/jogamp-fat.jar #unpack tar zxvf robovm-1.6.1-SNAPSHOT.tar.gz #compile using robovm ./robovm-1.6.1-SNAPSHOT/bin/robovm -verbose -dynamic-jni -forcelinkclasses jogamp.**:com.jogamp.** -cp jogamp-fat.jar com.jogamp.newt.opengl.GLWindow #run cd com.jogamp.newt.opengl.GLWindow #robovm currently fail to find natives inside jars, unpack them unzip -o lib/jogamp-fat.jar natives/*/* time ./com.jogamp.newt.opengl.GLWindow # Runtime options # All robovm runtimeoptions starts with # -rvm: # # To set jogamp specific java properties use # -rvm:Djogamp.debug # -rvm:Djogl.debug # # for more rvm flag examples see # https://github.com/robovm/robovm/wiki/Hacking-on-RoboVM#controlling-a-robovm-executable time ./com.jogamp.newt.opengl.GLWindow -rvm:Djogl.debug # Make the generated robovm binary smaller # we can use the robovm -treeshaker aggressive to remove classes from the binary # and we can more carefully select which nativewindow backends to include using forcelinkclasses. # finally we can reduce the size using strip and upx ./robovm-1.6.1-SNAPSHOT/bin/robovm -treeshaker aggressive -verbose -dynamic-jni -forcelinkclasses jogamp.nativewindow.x11.X11GraphicsConfigurationFactory:jogamp.** -cp jogamp-fat.jar com.jogamp.newt.opengl.GLWindow cd com.jogamp.newt.opengl.GLWindow strip com.jogamp.newt.opengl.GLWindow upx com.jogamp.newt.opengl.GLWindow # the final binary is then below 5Mb! # du -s -h com.jogamp.newt.opengl.GLWindow # 4,7M com.jogamp.newt.opengl.GLWindow # Real world example using jogl-demos compressed to small size: 6,3Mb wget http://jogamp.org/deployment/jogamp-current/archive/jogl-demos.7z 7z x jogl-demos.7z ./robovm-1.6.1-SNAPSHOT/bin/robovm -treeshaker aggressive -verbose -dynamic-jni -forcelinkclasses jogamp.nativewindow.x11.X11GraphicsConfigurationFactory:jogamp.** -cp jogamp-fat.jar:jogl-demos/jar/jogl-demos.jar demos.es2.RawGL2ES2demo cd demos.es2.RawGL2ES2demo unzip -o lib/jogamp-fat.jar natives/*/* zip -d lib/jogamp-fat.jar natives/*/* strip demos.es2.RawGL2ES2demo upx demos.es2.RawGL2ES2demo chmod +x natives/*/* strip natives/*/* upx natives/*/* ./demos.es2.RawGL2ES2demo