2013-07-31 6 views
2

Я видел этот вопрос, поднятый пару раз на этом веб-сайте, но на самом деле не видел ясного ответа, поэтому извините, что я повторяю его. При программировании с помощью JOGL и Java3D я обнаружил некоторые ошибки. Я пытался создать проект, который я мог бы в конечном итоге разместить в Android App Store. Я начал проект только с помощью Java3D и JOGL и поместил их в системную библиотеку на моем mac, где они отлично работали. Затем, чтобы попытаться сделать перенос проекта, я переместил файлы J3D и JOGL внутри проекта, чтобы их можно было скомпилировать в файл jar, который можно было бы запустить без необходимости установки j3d и JOGL. Но каждый раз, когда я запускал проект он бросил эту ошибку:JOGL бросает ClassNotFoundException?

Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GL 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:190) 
    at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:73) 
    at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:61) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:90) 
    at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:832) 
    at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274) 
    at javax.media.j3d.GroupRetained.<init>(GroupRetained.java:155) 
    at javax.media.j3d.TransformGroupRetained.<init>(TransformGroupRetained.java:116) 
    at javax.media.j3d.TransformGroup.createRetained(TransformGroup.java:114) 
    at javax.media.j3d.SceneGraphObject.<init>(SceneGraphObject.java:114) 
    at javax.media.j3d.Node.<init>(Node.java:172) 
    at javax.media.j3d.Group.<init>(Group.java:549) 
    at javax.media.j3d.TransformGroup.<init>(TransformGroup.java:87) 
    at src.Project.<clinit>(Project.java:47) 
    at src.ProjectPanel.<clinit>(ProjectPanel.java:8) 
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GL 
    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 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 17 more 

Я использую Eclipse в качестве IDE, и имею jogl-all.jar и gluegen-rt.jar файлов в пути к классам проекта, а также все требуют j3d, но по какой-то причине он не может найти файл GL.class.

Заранее благодарим за помощь.

ответ

3

При экспорте приложение как Runnable JAR использовать + Библиотеку обработку: Скопируйте необходимые библиотеки в подкаталог рядом с генерируемой JAR или + обработка Библиотеки: пакета необходимых библиотек в генерируемую JAR

Более подробная информация доступна в jogamp JOGL вики: http://jogamp.org/wiki/index.php/Setting_up_a_JogAmp_project_in_your_favorite_IDE http://jogamp.org/wiki/index.php/JogAmp_JAR_File_Handling

Также вам нужно будет использовать Java -jar параметр командной строки yourapp.jar для запуска приложения.

+0

Я еще не экспортировал его в JAR-файл, но когда я пытаюсь сделать то, что вы сказали, он показывает это: 'Catched URISyntaxException: ожидаемая часть, относящаяся к схеме, в индексе 5: rsrc :, while TempJarCache.bootstrapNativeLib() null (null + gluegen-rt-natives-macosx-universal.jar) Исключение в потоке "main" java.lang.UnsatisfiedLinkError: Не удается загрузить библиотеку: /System/Library/Frameworks/gluegen-rt.Framework/gluegen -rt' – aprogrammer

+1

Вам нужно будет включить gluegen-rt-туземцы * и jogl-all-natives * в проект eclipse для всех платформ, которые вы хотите поддержать, чтобы включить eclipse в экспортируемый проект. Это указано в параметрах Setting_up_a_JogAmp_project_in_your_favorite_IDE и JogAmp_JAR_File_Handling. Также проверьте, что у вас нет старых версий jogl и j3d внутри системных папок, jogamp рекомендует только развернуть jogl и j3d с вашим приложением. – xranby

+0

У меня есть оба этих файла в пути к классам проекта eclipse, прямо сейчас для osx, и я добавлю их для других платформ, как только я получу его в osx – aprogrammer