0

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

  1. 下载了这个
  2. 将所有这些文件移动到它们自己的文件夹中(称为 JOGL):
    • 胶水-rt.jar
    • jogl-all.jar
    • 胶水-java-src.zip
    • jogl-java-src.zip
    • 胶水-rt.dll
    • jogl_desktop.dll
    • nativewindow_awt.dll
    • nativewindow_win32.dll
    • 蝾螈.dll
  3. 转到项目结构并将 JOGL 文件夹作为库添加到模块中
  4. 尝试使用导入运行模块:import net.java.games.jogl.*;添加

我还尝试在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/".


下面是我的模块依赖项的屏幕截图(JOGL 就是我上面提到的):

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

4

2 回答 2

3

如果您使用的是 IDEA,那么将其作为一个 maven 项目来做是有意义的,因为 IDEA 有很好的 maven 支持。只需将依赖项粘贴到您pom.xml可以从 Maven 中心获得的依赖项中:

<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 时使用的,它很有效。

于 2013-08-19T08:13:14.080 回答
1

只需将jogl-all.jar 和gluegen-rt.jar 放入您的类路径,并将包含本机库的JAR 放入同一目录中。net.java.games.jogl 来自 JOGL JSR 231(一个非常旧的版本),在您下载 JOGL 2 时不再维护。调整您的代码以使其与 JOGL 2 一起使用。

编辑:现在您可以使用单个 JAR,jogamp-far.jar。只需将其放入您的类路径中即可。这要容易得多。说明在我们的 wiki 中

于 2014-02-04T20:12:30.253 回答