如何使用intellij想法进行jogl工作

时间:2013-04-20 22:41:43

标签: java intellij-idea jogl

我环顾四周,似乎无法弄清楚这一点。我正在尝试设置JOGL(在win64上)以与IntelliJ IDEA一起使用,无论我做什么,它似乎都不起作用。这是我到目前为止所做的:

  1. 已下载this
  2. 将所有这些文件移动到自己的文件夹中(称为JOGL):
    • gluegen-rt.jar中
    • JOGL-all.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.*;已添加
  5. 我还试图在不使用导入的情况下运行代码行System.loadLibrary("jogl");,但它不起作用。任何帮助表示赞赏。

    这些是我关注的指南:

    修改

    根据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就是我上面提到的):

    我试图将所有内容分开以使其更具可读性,如果难以理解,请对不起。

2 个答案:

答案 0 :(得分:2)

如果你正在使用IDEA,那么将它作为一个maven项目是有意义的,因为IDEA有很好的maven支持。只需将依赖项粘贴到maven central提供的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 :(得分: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