我正在尝试在 Eclipse 中将 JOGL 与 Scala 一起使用,但作为 JOGL/Scala 新手,我遇到了一些我无法做出正面或反面的依赖错误。谷歌搜索并没有返回任何有用的东西。
我已经按照 Setting_up_a_JogAmp_project_in_your_favorite_IDE建立了一个 Java JOGL 项目。
在依赖于上述项目的Java项目中编译如下Java类
import javax.media.opengl.GLProfile;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.awt.GLCanvas;
public class Game {
public static void main(String[] args) {
GLProfile glp = GLProfile.getDefault();
GLCapabilities caps = new GLCapabilities(glp);
GLCanvas canvas = new GLCanvas(caps);
System.out.println("Hello World");
}
}
工作,并按Hello World
预期输出。
但是,制作一个Scala项目并尝试使用JOGL项目如下
import javax.media.opengl.GLProfile;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.awt.GLCanvas;
object Game {
def main (args: Array[String]): Unit = {
val glp = GLProfile.getDefault();
val caps = new GLCapabilities(glp);
val canvas : GLCanvas = new GLCanvas(caps);
System.out.println("Hello World");
}
}
甚至不会编译,因为 Eclipse 通知我以下错误:
加载 CapabilitiesImmutable 时出错,缺少 G:\Eclipse\workspace\JOGL\jogl-all.jar (javax/media/nativewindow/CapabilitiesImmutable.class) Scala JOGL 所需的依赖项 'class com.jogamp.common.type.WriteCloneable'斯卡拉问题
加载 GLCanvas 时出错,缺少依赖项 'class com.jogamp.common.util.locks.RecursiveLock',G:\Eclipse\workspace\JOGL\jogl-all.jar 需要(javax/media/opengl/awt/GLCanvas.class ) Scala JOGL 未知的 Scala 问题
加载 GLContext 时出错,缺少 G:\Eclipse\workspace\JOGL\jogl-all.jar(javax/media/opengl/GLContext.class) 要求的依赖项 'class com.jogamp.common.util.locks.RecursiveLock' JOGL 未知的 Scala 问题
删除与GLCapabilities
and相关的行GLCanvas
,给出
object Game {
def main (args: Array[String]): Unit = {
val glp = GLProfile.getDefault();
System.out.println("Hello World");
}
}
编译和打印Hello World
。
我的问题是 - 为什么 Scala 代码不起作用,我能做些什么来解决它?我是否在做一些我不应该做的混合 JOGL 和 Scala 代码的疯狂巫术?我忘了添加一些依赖项吗?
版本信息
Eclipse:(版本:Juno Release Build id:20120614-1722)
用于 Eclipse 的 Scala IDE:(版本: 2.1.0.nightly-2_09-201208290312-cc63a95)(提供者: scala-ide.org)
JOGL 作为 JOGAMP版本 2.0-rc10 的一部分
编辑:好的,将gluegen-rt.jar 和jogl.jar 库添加到Scala 项目本身的构建路径中解决了这个问题(我不敢相信我没有想到首先这样做......)。我仍然不确定我做错了什么。