Hello all, I have a problem to use the new V1.7.1 Java3d outside of the eclipse;
Up to now I used Java3d V1.5.2, three jar files and four native .dll within an OSGI plugins; was fine! Intel and NVIDIA worked well but ATI wont render 3d objects; Then I changed the Java3d to the newest version (1.7.1) inclusive Jogamp V2.3.2; when I start the whole product from Eclipse IDE it works fine; But, when I export only the corresponding plugin as a jar file and replace it in the Product installation, I get ClaasNotFoundException "java.lang.ClassNotFoundException: org.jogamp.java3d.Node cannot be found by..." The same with the Java3d V1.7.0; it seems to be, that something with classpath is wrong; As if the j3dcore.jar is not in the classpath, but it is there! I use j3dcore,jar, j3dutils,jar, vecmath.jar, gluegen-rt.jar, jogl-all.jar and corresponding windows-i586 native dlls. These files are in the plugin and not in the "jre/lib/ext" Do I forgot to use "jogamp-fat-all"? Many thanks in advance... |
Administrator
|
Hello
Have you read my tutorial? https://gouessej.wordpress.com/2012/08/01/java-3d-est-de-retour-java-3d-is-back/ Sorry for the silly question but how do you set your classpath? What do you put into it? I'm not a specialist of OSGI, I might miss some considerations.
Julien Gouesse | Personal blog | Website
|
Yes, I read you tutorial, 10 times, could be
and the whole JOGAMP site; (is using of jogamp-fat-all.jar an up-to-date practice or discouraged?) But now, the Eclipse project uses PDE, (Plugin Development Environment) with OSGI Equinox to build a plugin (jar file); There is a MANIFEST.MF file and in this file following content Bundle-ClassPath: ., lib/Java3d_171/j3dcore.jar, lib/Java3d_171/j3dutils.jar, lib/Java3d_171/vecmath.jar, lib/jogamp/gluegen-rt.jar, lib/jogamp/jogl-all.jar Bundle-NativeCode: lib/jogamp/windows-i586/gluegen-rt.dll; lib/jogamp/windows-i586/nativewindow_awt.dll; lib/jogamp/windows-i586/nativewindow_win32.dll; lib/jogamp/windows-i586/jogl_cg.dll; lib/jogamp/windows-i586/jogl_desktop.dll this MANIFEST file is in the created plugin available too. With Bundle-ClassPath is the classpath defined and with Bundle-Nativcode is the destinnation for nativ .dll defined; With this settings I can perform the functionality started in eclipse, works fine; -> the build path (for compilation) is correct, no errors -> the runtime execution (classpath) is correct too I do not use gluegen-rt-natives-windows-i586.jar and jogl-all-natives-windows-i586.jar I do not use the sources ZIP files, also no references to it And no references to natives libraries e.g. gluegen-rt.jar has no reference to native source location Maybe the problem is not in Java3d at all but in Eclipse or in the OSGI or I dont know. I'm looking for an alternative posibility to build my plugin, with Command Line, Ant or MAVEN. |
Administrator
|
Personally, I had to use JOGL with OSGI about 12 years ago, I remember that I had to put everything into a single plugin to make it work, I couldn't put Gluegen and JOGL into separate plugins.
Wade wrote a tutorial about OSGI and JOGL, have you ever found it? Using jogamp-far.jar isn't a discouraged practice but I have never used it with OSGI.
Julien Gouesse | Personal blog | Website
|
The problem is solved and it was NOT Java3d!
I'll try to describe it. We have a product, comprises of many plugins (jar files); I'm responsible just for one, with Java3d. The first run of installed product writed down a file configuration\org.eclipse.osgi\framework.info.1This file contains the whole information about all paths, classpath, native libray path and much more. And when I changed some paths in my plugin (I did this to change from Java3d_152 to Java3d_171), then built plugin, replaced plugin in the product and then run the product, the tool used paths not from new plugin but from configuration\org.eclipse.osgi\framework.info.1This explained my ClassDefNotFoundException; Deletion of framework.info.1before plugin replacement helped me to solve this problem; Conclusion: OSGI-Behaviour! May be someone knows, how to change this behaviour e.g. with a flag, but this is a not a Java3d topic! Thanks a lot! |
Administrator
|
Thank you for your feedback. Your classpath was wrong, which explains why Java3D classes weren't found.
Julien Gouesse | Personal blog | Website
|
Free forum by Nabble | Edit this page |