Java 如何将JOGL与NetBeans平台捆绑?

Java 如何将JOGL与NetBeans平台捆绑?,java,opengl,netbeans,jogl,Java,Opengl,Netbeans,Jogl,我打算同时使用JOGL和NetBeans平台。我在嵌入JOGL本机库时遇到问题。也许有一种简单的方法可以重用NetBeans OpenGL插件中的.nbms?或者其他方法来实现这一点?也许可以尝试使用包含本机库的JAR,就像我们使用Java Web Start一样。在不知道具体问题是什么的情况下,以下是一种在Netbeans中运行JOGL的方法: 下载适合您平台的JOGL版本。从2011年3月起,从中获取一个文件,您将需要一个名为“jogl-2.0-(build)-(date)-(platfor

我打算同时使用JOGL和NetBeans平台。我在嵌入JOGL本机库时遇到问题。也许有一种简单的方法可以重用NetBeans OpenGL插件中的
.nbm
s?或者其他方法来实现这一点?

也许可以尝试使用包含本机库的JAR,就像我们使用Java Web Start一样。

在不知道具体问题是什么的情况下,以下是一种在Netbeans中运行JOGL的方法:

  • 下载适合您平台的JOGL版本。从2011年3月起,从中获取一个文件,您将需要一个名为“jogl-2.0-(build)-(date)-(platform).7z”的文件

  • 将其解压缩到磁盘上的某个位置。我通常创建a/sdk或c:\sdk并将内容放在那里,但这取决于您

  • 将jar添加到项目中。在Netbeans中,您可以创建一个“库”(工具>库)并在那里添加jar。哦,确保您确实将此库添加到项目中,右键单击项目的“库”。从JOGL分发版添加这些JAR可能会很好:

    • gluegen-rt.jar
    • jogl.all.jar
    • nativewindow.all.jar
    • newt.all.jar
  • 在Eclipse中,您可以将本机文件添加到“库”,但是-afaik-您不能这样做,因为这是Netbeans。您需要进入项目属性并选择左侧的“Run”,然后添加这个JavaVM选项:“-Djava.library.path=/sdk/jogl/lib”。确保将其作为VM选项输入,而不是作为类的参数输入。当然,也可以将/sdk/jogl替换为放置文件的位置。没有引号,任何地方都没有空格

  • 至少对于NetBeans 7.1来说,从中重用NBMs应该是可行的。请查看此帖子:

    如果您使用的是Maven,一个快速解决方案是为JOGL和Gluegen创建一个具有以下依赖项的包装器模块:

    <dependencies>
        <dependency>
            <groupId>org.jogamp.jogl</groupId>
            <artifactId>jogl-all-main</artifactId>
            <version>2.0-rc9</version>
        </dependency>
        <dependency>
            <groupId>org.jogamp.gluegen</groupId>
            <artifactId>gluegen-rt-main</artifactId>
            <version>2.0-rc9</version>
        </dependency>
    </dependencies>
    

    我认为可以从NetBeans IDE创建包装器模块,尽管我还没有尝试过。

    加载这些库不需要一些特殊的机制吗?AFAIK WebStart会自动执行此操作:将本机解压缩到temp并使用System.load()(或类似工具)加载它们。不管怎样,OpenGL插件在某种程度上能够打包本地人,似乎不需要任何额外的步骤。也许它使用了一些特定于NetBeans的本机扩展钩子或其他东西……你应该在JogAmp论坛上问这个问题,因为OpenGL包的维护人员经常来这里,他可以解决你的问题。谢谢你的精彩文章,但我已经知道怎么做了。我的主要问题是如何创建使用JOGL的独立应用程序。这个应用程序应该只有最低的安装要求,只有JDK。
    <publicPackages>
        <publicPackage>com.jogamp.*</publicPackage>
        <publicPackage>javax.media.*</publicPackage>
        <publicPackage>jogamp.*</publicPackage>
    </publicPackages>