2013-04-20 1 views
0

Я осмотрелся, и я не могу понять это. Я пытаюсь настроить JOGL (на win64) для использования с IntelliJ IDEA, и он, похоже, не работает независимо от того, что я делаю. Вот что я сделал до сих пор:Как сделать jogl работу с идеей intellij

  1. Скачано this
  2. Перемещенные все эти файлы в их собственную папку (называется JOGL):
    • gluegen-rt.jar
    • JOGL-все .jar
    • gluegen-java-src.zip
    • jogl-java-src.zip
    • gluegen-rt.dll
    • jogl_desktop.dll
    • nativewindow_awt.dll
    • nativewindow_win32.dll
    • newt.dll
  3. Пошел Project структуру и добавил папку JOGL в модуль в качестве библиотеки
  4. попытался бежать модуль с импортом: import net.java.games.jogl.*; добавлено

Я также попытался запустить линию кода System.loadLibrary("jogl"); без использования импорта, и это не сработало. Любая помощь приветствуется.

Эти направляющие меня следующие:

Edit:

По желанию CrazyCoder, в при попытке компиляции с import net.java.games.jogl.*; что я упомянул, я получаю:

java: C:\....\Main.java:2: package net.java.games.jogl does not exist


Когда я извлекаю импорт и попытаться запустить его с System.loadLibrary("jogl"); линии вставленной, я получаю:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path 
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738) 
at java.lang.Runtime.loadLibrary0(Runtime.java:823) 
at java.lang.System.loadLibrary(System.java:1028) 
at core.Main.main(Main.java:15) 

Как ни странно, когда я пытаюсь запустить его на командная строка с командой java -cp "/cygdrive/c/apps/JOGL/" core.Main Я получаю:

java.lang.NoClassDefFoundError: core/Main 
Caused by: java.lang.ClassNotFoundException: core.Main 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: core.Main. Program will exit. 
Exception in thread "main" 

Если я не запускаю его с помощью -cp "/cygdrive/c/apps/JOGL/", он отлично работает (как и в действительности работает и дает мне те же результаты, что и IDE, но также не работает одинаково).


Ниже приведен скриншот зависимостей моего модуля (JOGL то, что я упомянул это было выше):

Я пытался отделить все, чтобы сделать его более удобным для чтения, извините, если это трудно следить.

+0

Редактировать сообщение с фактическими ошибками, которые вы получаете. Скомпилирует ли он? Сбой при запуске? С какими ошибками? Прикрепите скриншот с конфигурацией зависимостей (http://www.jetbrains.com/idea/webhelp/configuring-module-dependencies-and-libraries.html). – CrazyCoder

ответ

2

Если вы используете IDEA, имеет смысл сделать это как проект maven, так как у IDEA отличная поддержка maven. Просто вставьте зависимости в вашем pom.xml они доступны из мавена центральной:

<dependencies> 
    <dependency> 
    <groupId>org.jogamp.gluegen</groupId> 
    <artifactId>gluegen-rt-main</artifactId> 
    <version>2.0.2</version> 
    </dependency> 
    <dependency> 
    <groupId>org.jogamp.jogl</groupId> 
    <artifactId>jogl-all-main</artifactId> 
    <version>2.0.2</version> 
    </dependency> 

    <dependency> 
    <groupId>org.jogamp.jocl</groupId> 
    <artifactId>jocl</artifactId> 
    <version>2.0.2</version> 
    </dependency> 
    <dependency> 
    <groupId>org.jogamp.jocl</groupId> 
    <artifactId>jocl-main</artifactId> 
    <version>2.0.2</version> 
    </dependency> 

    <!-- audio --> 
    <dependency> 
    <groupId>org.jogamp.joal</groupId> 
    <artifactId>joal</artifactId> 
    <version>2.0.2</version> 
    </dependency> 
</dependencies> 

Это то, что я использую, когда играет с JOGL и работает удовольствие.

1

Просто поместите jogl-all.jar и gluegen-rt.jar в свой путь к классу и поместите JAR, содержащие родные библиотеки, в тот же каталог. net.java.games.jogl поступает из JOGL JSR 231 (крайне старая версия), которая больше не поддерживается, тогда как вы загрузили JOGL 2. Адаптируйте свой код, чтобы он работал с JOGL 2.

Редактировать: Теперь вы может использовать один JAR, jogamp-far.jar. Просто поместите его в свой путь класса, и он работает. Это намного проще. The instructions are in our wiki.