3

我正在尝试在 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 问题

删除与GLCapabilitiesand相关的行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 项目本身的构建路径中解决了这个问题(我不敢相信我没有想到首先这样做......)。我仍然不确定我做错了什么。

4

1 回答 1

2

仅供参考,在我的一个 JOGL SBT 项目中,我需要添加:

  • 胶水-rt.jar
  • 胶水-rt-natives-.jar
  • jogl-all-2.0-rc9.jar
  • jogl-all-2.0-rc9-natives-.jar

到依赖项列表以使其正常工作。我的猜测是你必须在 Eclipse 的构建路径中包含这些。

这些可以从这个存储库中获得:http: //jogamp.org/deployment/maven

于 2012-08-29T07:59:58.703 回答