2009-12-16 60 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平臺」組合框中調整平臺版本。

擺弄這些設置爲我解決了類似的問題。