java.lang.NoClassDefFoundError: processing.opengl.PGraphicsOpenGL 处的 javax/media/opengl/GLException [英] java.lang.NoClassDefFoundError: javax/media/opengl/GLException at processing.opengl.PGraphicsOpenGL
问题描述
我正在 Raspberrypi(Raspbian)上的 Processing
中编写程序,以导入 3D STL 图像
文件.它在 Microsoft (windows7) & 上完美运行Linux(Ubuntu) 平台,但我正在努力在 Raspberrypi (Raspbian) 平台上运行相同的程序.
当我在 Raspberrypi 上运行这个程序时,我在 size(600,600,P3D)
处遇到错误...
编码
import toxi.geom.*;导入 toxi.geom.mesh.*;进口毒素.加工.*;TriangleMesh 网格;ToxiclibsSupport gfx;无效设置(){尺寸(600,600,P3D);mesh=(TriangleMesh)new STLReader().loadBinary(sketchPath("check.stl"),STLReader.TRIANGLEMESH);gfx=new ToxiclibsSupport(this);}无效画(){背景(51);灯();翻译(宽/2,高/2,0);旋转X(鼠标Y * 0.01);旋转Y(鼠标X * 0.01);gfx.origin(new Vec3D(),200);noStroke();gfx.mesh(mesh,false,10);}
<块引用>
错误
java.lang.NoClassDefFoundError: javax/media/opengl/GLException在 processing.opengl.PGraphicsOpenGL.createPGL(PGraphicsOpenGL.java:1744)在 processing.opengl.PGraphicsOpenGL.(PGraphicsOpenGL.java:518)在 processing.opengl.PGraphics3D.(PGraphics3D.java:37)在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)在 java.lang.reflect.Constructor.newInstance(Constructor.java:526)在 processing.core.PApplet.makeGraphics(PApplet.java:1919)在 processing.core.PApplet.size(PApplet.java:1771)在 processing.core.PApplet.size(PApplet.java:1742)在 project5.setup(project5.java:27)在 processing.core.PApplet.handleDraw(PApplet.java:2361)在 processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)在 processing.core.PApplet.run(PApplet.java:2256)在 java.lang.Thread.run(Thread.java:724)引起:java.lang.ClassNotFoundException:javax.media.opengl.GLException在 java.net.URLClassLoader$1.run(URLClassLoader.java:366)在 java.net.URLClassLoader$1.run(URLClassLoader.java:355)在 java.security.AccessController.doPrivileged(Native Method)在 java.net.URLClassLoader.findClass(URLClassLoader.java:354)在 java.lang.ClassLoader.loadClass(ClassLoader.java:424)在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)……还有 15 个
Processing 的问题是目前没有 3D 实现,因为 Raspberry PI 需要一个 OPENGL_ES 渲染器.目前您只能在 2D 中渲染(例如 size(200,200,JAVA2D);
).
实际上有一个 >
I am writing a program in Processing
on Raspberrypi(Raspbian), to import a 3D STL image
file. It is working perfectly on Microsoft (windows7) & Linux(Ubuntu) platform but I am struggling to run same program on Raspberrypi (Raspbian) platform.
I am getting below Error at size(600,600,P3D)
when I run this program on Raspberrypi...
Coding
import toxi.geom.*;
import toxi.geom.mesh.*;
import toxi.processing.*;
TriangleMesh mesh;
ToxiclibsSupport gfx;
void setup() {
size(600,600,P3D);
mesh=(TriangleMesh)new STLReader().loadBinary(sketchPath("check.stl"),STLReader.TRIANGLEMESH);
gfx=new ToxiclibsSupport(this);
}
void draw() {
background(51);
lights();
translate(width/2,height/2,0);
rotateX(mouseY*0.01);
rotateY(mouseX*0.01);
gfx.origin(new Vec3D(),200);
noStroke();
gfx.mesh(mesh,false,10);
}
Error
java.lang.NoClassDefFoundError: javax/media/opengl/GLException
at processing.opengl.PGraphicsOpenGL.createPGL(PGraphicsOpenGL.java:1744)
at processing.opengl.PGraphicsOpenGL.<init>(PGraphicsOpenGL.java:518)
at processing.opengl.PGraphics3D.<init>(PGraphics3D.java:37)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at processing.core.PApplet.makeGraphics(PApplet.java:1919)
at processing.core.PApplet.size(PApplet.java:1771)
at processing.core.PApplet.size(PApplet.java:1742)
at project5.setup(project5.java:27)
at processing.core.PApplet.handleDraw(PApplet.java:2361)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:240)
at processing.core.PApplet.run(PApplet.java:2256)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 15 more
The issue with Processing is that currently there is no 3D implementation because Raspberry PI needs an OPENGL_ES renderer.
Currently you can only render in 2D (e.g. size(200,200,JAVA2D);
).
There is actually an OPENGL_ES renderer in Processing but it's for the Android mode and it has dependencies on the android SDK. As far as I know, there isn't any Processing OPENGL_ES renderer you can use on Raspberry PI at the moment(if someone knows of one, please let me know). In theory how ever, it should be possible to strip out the android dependencies from the Android PGraphics class, but feels like a risky move (especially if you have a tight deadline).To get started you may want to look EGL
in java running on Rasperry Pi.
I would recommend using OpenFrameworks instead in this case, if displaying an STL file is all you need. I've modified an existing STL addon for OpenFramworks and tested it: the performance is great on the Raspberry PI. Although it's c++, the project is inspired by Processing and a lot of the functions will sound very familiar.
Once you setup OpenFramworks you can download ofxSTLModel and compile the example(I've updated it to run on Raspberry PI). Press any key to toggle wireframe view.
Update Now there is an experimental Raspian image including Processing 3 with 3D support. Check out this thread
这篇关于java.lang.NoClassDefFoundError: processing.opengl.PGraphicsOpenGL 处的 javax/media/opengl/GLException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!