2

我有一个在 solaris 上开发的 java3d 项目,出于各种原因,我正试图转移到我的 macbook 上(1 是我们的 solaris 机器非常缓慢)。

基本上我想要的是在这个项目中使用 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 上做同样的事情时,方法确实出现了。所以基本上,我知道我试图包含的罐子实际上包含我需要的方法/类。netbeans 就是找不到它们

如果有任何不清楚的地方,请让我澄清一下。写到这里我就糊涂了。

在此先感谢您的帮助!

4

2 回答 2

0

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

于 2009-12-17T07:40:08.757 回答
0

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

右键单击 Netbeans 项目并单击属性,在“源”面板下的“源/二进制格式”组合框中调整 JDK 版本。在“库”面板下,调整“Java 平台”组合框中的平台版本。

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

于 2009-12-17T00:29:50.913 回答