2009-12-16 12 views
2

J'ai un projet java3d qui a été développé sur solaris et que j'essaie de déplacer sur mon macbook pour diverses raisons (1 étant que nos machines solaris sont douloureusement lentes). Fondamentalement ce que je veux est d'utiliser osx + netbeans pour ce projet, mais il semble faire référence à des méthodes java3d qui ne sont pas inclus dans la version obsolète de java3d dans le JDK mac 1.6. Ma première tentative pour résoudre ce problème consistait à inclure les bibliothèques java3d 1.5.2 en tant que jars externes pour le projet, mais il semble que netbeans essaie toujours de référencer les anciennes bibliothèques dans le 1.6 JDK au lieu des bibliothèques j2d 1.5.2.Java3d + osx + netbeans

De même lorsque j'explore les jars 1.5.2 dans l'explorateur de fichiers netbeans, les méthodes (qui ne sont pas incluses dans le 1.6 jdk) n'apparaissent pas dans leurs classes respectives. Cependant, quand je fais la même chose sur Solaris, les méthodes apparaissent. Donc, fondamentalement, je sais que les pots que j'essaie d'inclure contiennent en fait les méthodes/classes dont j'ai besoin. netbeans ne les trouvera pas

Si quelque chose n'est pas clair s'il vous plaît demandez-moi de le clarifier. Je me suis trompé en écrivant ceci.

Merci d'avance pour l'aide!

Répondre

0

Il semble que vous ayez besoin d'ajuster votre CLASSPATH pour placer les jars java3d les plus récents avant les anciens. Essayez de placer les JAR Java3D les plus récents dans/Library/Java/Extensions. Et, si cela ne fonctionne pas, définissez la variable CLASSPATH dans ~/.MacOSX/environment.plist pour pointer vers les JAR les plus récents (vous devrez vous déconnecter puis vous reconnecter pour que la modification prenne effet). Cela pourrait ne pas être agréable aux autres applications Java qui dépendent de Java3D, si elles nécessitent l'ancienne version, cependant. Fondamentalement, ce que vous rencontrez est "DLL enfer" ou "enfer de dépendance", sauf avec Java. L'utilisation du système de génération Maven2, qui nécessite un versionnement explicite des dépendances et qui télécharge et installe automatiquement les dépendances requises, résoudrait ce problème. Notez également que les projets qui utilisent le Maven2 sont automatiquement reconnus par NetBeans.

+0

La première correction a donc fonctionné, en plaçant les fichiers jars dans le dossier Extensions. Ce qui est étrange pour moi, c'est que netbeans a caché les méthodes 1.5.2 de moi même quand je les ai ajoutés comme des pots externes. Mais quand j'ai ajouté les jars au dossier de l'extension, les méthodes apparaissaient à la fois sous le 1.6JDK et dans les pots externes. Bizarre trucs sauvages, mais merci pour l'aide Michael. – achar

+0

En effet, le contenu de l'extension est répertorié dans Netbeans dans le menu Outils> Plates-formes Java> Classes. @achar avez-vous également eu besoin de mettre à jour JOGL? – romeroabelleira

0

Vous ne savez pas si cela est lié, mais vous pouvez essayer d'ajuster les paramètres Java Platform et Source/Binary Format de votre projet Netbeans.

Cliquez avec le bouton droit de la souris sur le projet Netbeans et cliquez sur Propriétés, sous le panneau 'Sources' réglez la version JDK dans la zone de liste déroulante 'Source/Format binaire'. Dans le panneau "Bibliothèques", ajustez la version de la plate-forme dans la liste déroulante "Plate-forme Java". Finger avec ces paramètres résolu un problème similaire pour moi.