limitazione di accesso su JAR (qual è il modo corretto per ottenere VecMath?)
Domanda
Ho bisogno Vecmath, così sono andato a Oracle per ottenere l'ultima versione di Java 3D . Non ho visto un posto per scaricare un JAR, ma aveva un programma di installazione. Ho scaricato e fatto funzionare. Suppongo che il programma di installazione ha aggiunto il JAR come estensione JDK
I riavviato Eclipse, e si vede che VecMath è presente. Tuttavia, si lamenta ancora:
restrizione di accesso: il tipo di Vector3f non è accessibile a causa di restrizione su richiesta libreria C: \ Program \ Java \ jre6 \ lib \ ext \ vecmath.jar
Bummer. Sono in grado di cambiare da un errore del compilatore ad un avvertimento, ma si blocca non appena provo a farlo funzionare. Anche se, sto usando questo in collaborazione con OpenGL, e l'incidente poteva avere nulla a che fare con vecmath. Non ne sono sicuro. Qui è l'eccezione:
Exception in thread "Timer-0" javax.media.opengl.GLException: java.lang.RuntimeException: javax.imageio.IIOException: Can't read input file!
at com.jogamp.opengl.impl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:101)
at com.jogamp.opengl.impl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:192)
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:164)
at javax.media.opengl.awt.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:591)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:301)
at com.jogamp.opengl.util.AnimatorImpl.display(AnimatorImpl.java:50)
at com.jogamp.opengl.util.Animator.display(Animator.java:154)
at com.jogamp.opengl.util.FPSAnimator$1.run(FPSAnimator.java:95)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Caused by: java.lang.RuntimeException: javax.imageio.IIOException: Can't read input file!
at cs4620.nth23.assignment1.GraphicsApp.loadTextures(GraphicsApp.java:98)
at cs4620.nth23.assignment1.GraphicsApp.init(GraphicsApp.java:65)
at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:111)
at com.jogamp.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:124)
at javax.media.opengl.awt.GLCanvas$InitAction.run(GLCanvas.java:643)
at com.jogamp.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:273)
at javax.media.opengl.awt.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:674)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at cs4620.nth23.assignment1.GraphicsApp.loadTextures(GraphicsApp.java:95)
... 14 more
sto usando:
-
x84 di Windows 7
-
Eclipse Helios
-
JavaSE-1.6
-
JDK 1.6
Che cosa sto facendo male qui?
Soluzione
L'eccezione è stata causata da non essere in grado di trovare un file di riferimento nel codice -. Non ha nulla a che fare con VecMath
L'applicazione funziona benissimo, nonostante le restrizioni di accesso. Non so se tornerà a mordere me più tardi o che cosa.