我环顾四周,似乎无法弄清楚这一点。我正在尝试设置JOGL(在win64上)以与IntelliJ IDEA一起使用,无论我做什么,它似乎都不起作用。这是我到目前为止所做的:
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/"
运行它,它可以正常工作(如实际运行,并给我与IDE相同的结果,但也以相同的方式失败)。
下面是我模块的依赖关系的截图(JOGL就是我上面提到的):
我试图将所有内容分开以使其更具可读性,如果难以理解,请对不起。
答案 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