2009-12-16 61 views
2

我有一个在solaris上开发的java3d项目,我尝试移动到我的macbook上有各种原因(1是我们的solaris机器非常慢)。Java3d + osx + netbeans

基本上我想要的是在这个项目中使用osx + netbeans,但它似乎引用了未包含在mac 1.6 JDK中过时版本的java3d中的java3d方法。我第一次解决这个问题的尝试是将java3d 1.5.2库作为项目的外部jar包含在内,但似乎netbeans仍然试图引用1.6 JDK中的旧库而不是1.5.2 j3d库。

另外,当我探索NetBeans文件资源管理器中的1.5.2 jar包时,方法(不包含在1.6 jdk中)不会显示在它们各自的类下。但是,当我在solaris上做同样的事情时,方法显示出来。所以基本上,我知道我试图包含的jar实际上包含我需要的方法/类。 netbeans只是不会找到它们

如果有什么不清楚的地方,请让我澄清一下。我感到困惑,只是写这个。

在此先感谢您的帮助!

回答

0

这听起来像你可能需要调整你的CLASSPATH,把新的java3d罐子放在旧罐子的前面。尝试将更新的Java3D JAR放在/ Library/Java/Extensions中。并且,如果这不起作用,请在〜/ .MacOSX/environment.plist中将CLASSPATH变量设置为指向较新的JAR(需要注销并重新登录才能使更改生效)。但是,对于依赖于Java3D的其他Java应用程序,如果它们需要较旧的版本,这可能并不好。基本上,你遇到的是“DLL地狱”或“依赖地狱”,除了Java。使用需要显式版本化依赖关系并自动下载和安装所需依赖项的Maven2构建系统可以解决这个问题。还要注意,使用Maven2的项目会被NetBeans自动识别。

+0

因此,第一个修复工作,将罐放入扩展文件夹。然而,我觉得很奇怪的是,即使当我将它们添加为外部容器时,netbeans也隐藏了我的1.5.2方法。但是当我将罐子添加到扩展文件夹时,方法显示在1.6JDK和外部罐子下。奇怪的野生东西,但谢谢你的帮助迈克尔。 – achar 2009-12-17 17:08:04

+0

这是因为扩展的内容在Netbeans中的菜单项Tools> Java Platforms> Classes中列出。 @achar你还需要更新JOGL吗? – romeroabelleira 2010-06-08 15:08:41

0

不确定这是否相关,但您可以尝试调整Netbeans项目的Java PlatformSource/Binary Format设置。

右键单击Netbeans项目,然后单击“Sources”面板下的属性,在“Source/Binary Format”组合框中调整JDK版本。在“库”面板下,在“Java平台”组合框中调整平台版本。

摆弄这些设置为我解决了类似的问题。