IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

Problème installation JMonkey avec plugin RCP


Sujet :

Eclipse Platform

  1. #1
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut Problème installation JMonkey avec plugin RCP
    Bonjour,

    J'ai un soucis pour utiliser le moteur 3D JMonkey (JME) sous éclipse RCP 3.5. J'ai crée un plugin JMonkey à partir des .jars que l'on peut télécharger sur le site de JMonkey (http://www.jmonkeyengine.com) puis j'y ai ajouté les librairies qu'il lui faut.
    J'ai ensuite crée mon plugin TestJMonkey afin de tester l'affichage d'un objet 3D et là j'ai un soucis au lancement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: [Lorg/lwjgl/opengl/DisplayMode;
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getDeclaredMethod(Unknown Source)
        at java.awt.Component.isCoalesceEventsOverriden(Unknown Source)
        ...
    Caused by: java.lang.ClassNotFoundException: org.lwjgl.opengl.DisplayMode
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
    ...
    J'ai essayé de le faire fonctionner dans un projet éclipse normal et tout fonctionne bien avec les mêmes jars et les mêmes librairies. Je ne comprends pas pourquoi ça ne fonctionne plus lorsque je passe en mode plugin...

    Si quelqu'un peut m'aider, je peux fournir plus d'infos.

    Merci d'avance
    Contrec

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Eclipse for Java Developper et Eclipse for RCP/Plug-in Developper ne partagent pas très exactement le même noyau. Du coup ils ne contiennent pas à la base le même panel de librairies.
    Néanmoins, si ton projet ne requiert que des dépendances communes aux deux plates-formes, il devrait en principe tourner indifféremment sur les deux.
    Vérifie que le fichier lwjgl.jar se trouve bien dans le classpath de ton plugin.

  3. #3
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Tout d'abord merci de m'aider. Le jar lwjgl.jar se trouve bien dans le class path et le lien avec sa librairie native est fait.

    Si je garde le même noyau mais en créant un projet normal (tout en restant sous RCP) ça fonctionne très bien mais dès que j'essaye de faire un plugin (je crée une extension Application) là ça plante...

    Je pense que je m'y prends mal mais je ne vois pas de solutions...
    Contrec

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Dans l'arborescence de ton projet sous eclipse RCP, double-cliques sur plugin.xml. Dans la fenêtre qui s'affiche va sur l'onglet Runtime. Dans la section Classpath (en bas à droite de l'écran) vérifies bien que tous les .jar (de jMonkey et autres) que tu as rajoutés au Build Path s'y trouvent aussi. Dans le cas contraire rajoutes-les avec le bouton Add ensuite save le fichier. Reviens sur l'onglet Overview et fais un Update classpath settings grâce au lien en bas à gauche de l'écran.

    Au besoin, dans la fenêtre Run Configurations de ton plug-in, tu pourrais, sous l'onglet Plug-ins cliquer sur le bouton Add required plug-ins pour t'assurer que toute plug-in dépendence est intégrée avant de passer à l'exécution.

    A mon avis, c'est un pb de config et j'espère que ça puisse t'aider.

  5. #5
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Alors j'ai fait exactement tout ce que tu m'as dit de faire mais j'ai toujours une exception au lancement. Voici le code de ma classe principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    package testjmonkeyplugin;
     
    import org.eclipse.equinox.app.IApplication;
    import org.eclipse.equinox.app.IApplicationContext;
     
    public class TestMain implements IApplication  {
     
        @Override
        public Object start(IApplicationContext context) throws Exception {
            Launch3DScene myScene = new Launch3DScene();
            myScene.launchScene();
            return null;
        }
     
        @Override
        public void stop() {
            // TODO Auto-generated method stub
        }
     
    }
    Celui de la classe censée lancer l'animation 3D :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    package testjmonkeyplugin;
     
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
    import com.jme.app.SimpleGame;
    import com.jme.bounding.BoundingBox;
    import com.jme.bounding.BoundingSphere;
    import com.jme.math.Vector3f;
    import com.jme.scene.Node;
    import com.jme.scene.shape.Box;
    import com.jme.scene.shape.Sphere;
    import com.jme.util.export.binary.BinaryImporter;
    import com.jmex.model.converters.FormatConverter;
    import com.jmex.model.converters.MaxToJme;
     
    public class Launch3DScene extends SimpleGame {
     
        public void launchScene() {
            Launch3DScene scene = new Launch3DScene();
            scene.setConfigShowMode(ConfigShowMode.NeverShow);
            scene.start();
            System.out.println("Scène 3D Lancée");
        }
     
        @Override
        protected void simpleInitGame() {
            Box box1 = new Box("Box numero uno", new Vector3f(0,1,0),1,1,1);
            box1.setModelBound(new BoundingBox());
            box1.updateModelBound();
            rootNode.attachChild(box1);
            Box box2 = new Box("Box numero dos", new Vector3f(0,-1,0),10,0.25f,10);
            box2.setModelBound(new BoundingBox());
            box2.updateModelBound();
            rootNode.attachChild(box2);
            Sphere sphere1 = new Sphere("Sphere number one", new Vector3f(0,1,1), 20, 20, 1);
            sphere1.setModelBound(new BoundingSphere());
            sphere1.updateModelBound();
            rootNode.attachChild(sphere1);
            rootNode.setModelBound(new BoundingBox());
            rootNode.updateModelBound();
     
            Node myCube;
            myCube = this.getBlenderObject("BlenderModels\\Monkey.3ds");
            myCube.setModelBound(new BoundingBox());
            rootNode.attachChild(myCube);
            myCube.updateModelBound();
        }
     
        private Node getBlenderObject(String objectPath) {
     
            Node myObject;
            FileInputStream myObjectInputStream;
     
            try {
                myObjectInputStream = new FileInputStream(objectPath);
                FormatConverter converter = new MaxToJme();
                converter.setProperty("mtllib", myObjectInputStream);
                ByteArrayOutputStream BO = new ByteArrayOutputStream();
                try {
                    converter.convert(myObjectInputStream, BO);
                    myObject = (Node) BinaryImporter.getInstance().load(new ByteArrayInputStream(BO.toByteArray()));
                    return myObject;
     
                } catch (IOException e) {
                    System.out.println("Damn exceptions!" + e);
                    e.printStackTrace();
                    System.exit(0);
                }
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }
            return null;
        }
    }
    Et enfin l'exception levée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    !SESSION 2010-01-07 08:40:14.823 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.6.0_17
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_FR
    Framework arguments:  -application TestJMonkeyPlugin.TestJMonkeyPluginApplication
    Command-line arguments:  -application TestJMonkeyPlugin.TestJMonkeyPluginApplication -data C:\usr\Christophe\Rockwell\Maintenance Application\TestsJMonkey\TestJMonkeyPlugin -dev file:C:/usr/Christophe/Rockwell/Maintenance Application/TestsJMonkey/.metadata/.plugins/org.eclipse.pde.core/JMonkeyPlugin/dev.properties -os win32 -ws win32 -arch x86
     
    !ENTRY org.eclipse.osgi 4 0 2010-01-07 08:40:15.822
    !MESSAGE Application error
    !STACK 1
    java.lang.NoClassDefFoundError: Could not initialize class org.lwjgl.opengl.Display
        at com.jme.system.lwjgl.LWJGLDisplaySystem.close(LWJGLDisplaySystem.java:313)
        at com.jme.app.BaseGame.quit(BaseGame.java:117)
        at com.jme.app.BaseSimpleGame.quit(BaseSimpleGame.java:614)
        at com.jme.app.BaseGame.start(BaseGame.java:107)
        at testjmonkeyplugin.Launch3DScene.launchScene(Launch3DScene.java:25)
        at testjmonkeyplugin.TestMain.start(TestMain.java:11)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
    Je suis sûr que c'est un tout petit soucis qui bloque tout... Quelqu'un de calé en eclipse RCP pourrait-il tester vite fait un nouveau projet en incluant les jars de JMonkey en se servant de mon code ? Ce serait le bonheur car là je ne voit pas le soucis...

    En gros quand j'exécute mon code en tant que "Eclipse Application" ça plante et quand je le lance en "Java Application" ça fonctionne...
    Contrec

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Salut Contrec,

    C'est bien de l'avoir posté ton code. A le voir, ya pas "qu'un petit souci qui bloque tout", Ya de gros tas de truc à refaire

    J'ai jamais eu à bosser avec jMonkey, ni sur du 3D. Donc, j'ai pris mon temps pour downloader la librairie et grâce à une recherche assez intensive sur le net, j'ai pu bidouiller un petit truc qui exécute bien ton code (à l'exception de l'absence du fichier BlenderModels\\Monkey.3ds que je n'ai pas)

    Remarques :Ta classe d'entrée TestMain n'a pas l'air commode. Elle implémente bien IApplication mais n'a pas du tout la structure de celle d'un programme RCP classique. Quelque soit ce que tu veux afficher dans du RCP, tu dois passer par des perspectives, des vues, des éditeurs...C'est pas trop la mm philo qu'une appli java standard. Si jamais, voici un bon article pour commencer. Il récapitule tous les concepts de base: http://www.vogella.de/articles/RichC...m/article.html

    Bon, entrons dans le vif du sujet:
    1- Tu dois mettre en place un environnement te permettant de faire du "jMonkey" dans du "RCP". Il y en a quelques uns, mais j'ai trouvé le projet monklypse qui est gratuit et m'a lair abouti. Donc, dans eclipse fais un install depuis le site : http://rifidi.org/update/.

    2- Je trouve qu'il est plus simple de faire du RCP en partant d'un des templates proposés (ce que j'ai fait). Laisse la classe Application.java intact. C'est elle qui sera l'entrée du programme. Ajoute les dépendances vers les plug-ins org.monklypse.jme2 et org.monklypse.jme.physics en plus des dépendances que tu avais déjà créées avec les librairies jMonkey. Ces nouveaux plug-ins te fournissent les API nécessaires pour charger les classes jMonkey dans le RCP.

    3- Crées une nouvelle classe qui va lancer ton animation. Elle remplacera donc Launch3DScene. Elle hérite de SWTDefaultImplementor qui lui fournit les méthodes permettant de s'interfacer avec jMonkey. Voici la mienne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    package test.jmonkey.implementation;
     
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
    import org.monklypse.core.SWTDefaultImplementor;
     
    import com.jme.bounding.BoundingBox;
    import com.jme.bounding.BoundingSphere;
    import com.jme.math.Vector3f;
    import com.jme.scene.Node;
    import com.jme.scene.shape.Box;
    import com.jme.scene.shape.Sphere;
    import com.jme.util.export.binary.BinaryImporter;
    import com.jmex.model.converters.FormatConverter;
    import com.jmex.model.converters.MaxToJme;
     
    public class TheGame extends SWTDefaultImplementor {
     
    	public TheGame(int width, int height) {
    		super(width, height);
    	}
     
    	public TheGame() {
    		super(700, 700);
    	}
     
    	@Override
    	public void simpleRender() {
     
    	}
     
    	@Override
    	public void simpleSetup() {
    		Box box1 = new Box("Box numero uno", new Vector3f(0,1,0),1,1,1);
            box1.setModelBound(new BoundingBox());
            box1.updateModelBound();
            rootNode.attachChild(box1);
            Box box2 = new Box("Box numero dos", new Vector3f(0,-1,0),10,0.25f,10);
            box2.setModelBound(new BoundingBox());
            box2.updateModelBound();
            rootNode.attachChild(box2);
            Sphere sphere1 = new Sphere("Sphere number one", new Vector3f(0,1,1), 20, 20, 1);
            sphere1.setModelBound(new BoundingSphere());
            sphere1.updateModelBound();
            rootNode.attachChild(sphere1);
            rootNode.setModelBound(new BoundingBox());
            rootNode.updateModelBound();
     
            Node myCube;
            myCube = this.getBlenderObject("BlenderModels\\Monkey.3ds");
            myCube.setModelBound(new BoundingBox());
            rootNode.attachChild(myCube);
            myCube.updateModelBound();
    	}
     
    	@Override
    	public void simpleUpdate() {
     
    	}
     
    	private Node getBlenderObject(String objectPath) {
     
            Node myObject;
            FileInputStream myObjectInputStream;
     
            try {
                myObjectInputStream = new FileInputStream(objectPath);
                FormatConverter converter = new MaxToJme();
                converter.setProperty("mtllib", myObjectInputStream);
                ByteArrayOutputStream BO = new ByteArrayOutputStream();
                try {
                    converter.convert(myObjectInputStream, BO);
                    myObject = (Node) BinaryImporter.getInstance().load(new ByteArrayInputStream(BO.toByteArray()));
                    return myObject;
     
                } catch (IOException e) {
                    System.out.println("Damn exceptions!" + e);
                    e.printStackTrace();
                    System.exit(0);
                }
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }
            return null;
        }
    }
    Comme tu peux le voir c'est juste une ré-encapsulation de ta classe.

    4- Tu dois maintenant faire l'affichage depuis la méthode createPartControl du Handle de ta vue. Je te donne la mienne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    package test.jmonkey.views;
     
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.ui.part.ViewPart;
    import org.monklypse.core.JMEComposite;
     
    import test.jmonkey.implementation.TheGame;
     
    public class Monlanceur extends ViewPart {
     
    	public static String ID = "test.jmonkey.monlanceur";
     
    	public Monlanceur() {
    		// TODO Auto-generated constructor stub
    	}
     
    	@Override
    	public void createPartControl(Composite parent) {
    		Composite container = new Composite(parent, SWT.None);
            container.setLayout(new GridLayout(2, true));
            JMEComposite composite = new JMEComposite(container, new TheGame());
            composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    	}
     
    	@Override
    	public void setFocus() {
    		// TODO Auto-generated method stub
    	}
     
    }
    5- Tout est prêt pour l'affichage. Tu le fais dans une perspective que tu auras expressément créée. Moi je l'ai fait dans la perspective principale et voici ma classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package test.jmonkey;
     
    import org.eclipse.ui.IPageLayout;
    import org.eclipse.ui.IPerspectiveFactory;
     
    import test.jmonkey.views.Monlanceur;
     
    public class Perspective implements IPerspectiveFactory {
     
    	public void createInitialLayout(IPageLayout layout) {
    		layout.setEditorAreaVisible(false);
    		layout.addStandaloneView(Monlanceur.ID, true, IPageLayout.LEFT, 1.0f, layout.getEditorArea());
    	}
    }
    Et le tour est joué. Chez moi ça marche. ça devrait aussi être le cas pour toi. Pour info, j'utlise eclipse RCP Galileo SR1.

    En espérant t'avoir été utile

  7. #7
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Wahou ça fait plaisir de voir que tu te donnes du mal pour m'aider, je t'en remercie.

    J'essaye tout ça et je te dis (j'ai des soucis car les update site ne fonctionnent pas dans notre boite).
    Contrec

  8. #8
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Après quelques déboires, j'ai enfin pu lancer l'application. Je ne comprends pas bien comment utiliser SWTDefaultImplementor mais ça viendra je pense.

    Merci pour tout, et je préfère prévenir que je risque d'avoir encore quelques soucis car comme tu l'as vu, je débute et je dois réaliser un plugin 3D...

    Merci.
    Contrec

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai également quelques questions sur ce sujet :

    Je suis responsable de la partie 3D d'un jeu de poker et je veux l'intégrer à une IHM RCP faite par un autre étudiant.

    Comment fait-on pour ajouter le plugin Monklypse aux dépendances? (il n'est pas dedans, je ne sais pas où il faut le mettre...)

    De plus, le fait d'utiliser SWTDefaultImplementor interdit d'utiliser SimpleGame, n'y a-t-il pas un moyen de pouvoir implémenter l'intégration RCP autrement?

    Merci d'avance!

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Pour l'intégration tu fais l'update site (cf. mon dernier post), ensuite tu rajoutes les dépendances depuis l'onglet Dependencies de l'interface de plugin.xml. Concernant SWTDefaultImplementor, je pense que jusqu'ici, c'est le seul moyen de faire l'interfaçage SWT/jMonkey sous monklypse. Si tu veux d'autres moyens, faut peut-être regarder vers d'autres projets d'intégration qui ont été faits dans ce sens et à mon avis y'en n'a pas bcp.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Que veux-tu dire par update site? J'ai téléchargé le .jar à l'adresse donné mais je ne sais pas comment il faut l'intégrer à Eclipse.

    C'est justement cela qui me pose problème.

    Après tes exemples devrait suffire (même si je vais devoir réécrire une bonne partie du code qui tirait partie de SimpleGame).

    Merci.

  12. #12
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Sous eclipse tu fais "Help" puis "Install new Software" puis tu cliques sur "Add" pour ajouter l'update site. Tu le nommes Monklypse et tu entres http://rifidi.org/update/ pour l'url. Eclipse va se connecter au site et te proposer d'installer Monklypse. Tu coches tout et tu installes. Après un redémarrage Eclipse aura intégré le projet Monklypse.
    Il ne te restera plus qu'à aller dans le META-INF de ton plugin et dans l'onglet "Dependencies" tu ajoutes la référence vers le projet Monklypse.

    Pour info, après avoir intégré Monklypse tu n'as pas à intégrer d'autres jars de JMonkey ou autres.

    Grâce à ngila mon plugin commence à fonctionner. Il ne me reste plus qu'à savoir manipuler JMonkey (je me sers du code source fourni sur le site google de Monklypse pour savoir comment utiliser la librairie).
    Contrec

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse Contrec, j'ai fait tout ce que tu a dis mais j'ai encore 2 problèmes majeurs :

    - eclipse n'arrive pas a faire d'import de org.monklypse, quelqu'il soit.

    - j'ai une "java.lang.NoClassDefFoundError: Could not initialize class org.lwjgl.opengl.Display" quand je lance mon application alors que tout se passait bien avec les .jar normaux de jME.

    Des idées quand à ces problèmes? Peut être ai-je manqué une manip (j'ai ben ajouté tous les plug-ins Monklypse dans les dépendances du META-INF).

    Merci pour vos réponses.

  14. #14
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Je suis encore débutant mais pour l'update site qui ne fonctionne pas, ça m'est arrivé, j'ai changé de version d'eclipse (RCP Galiléo 3.5.1) et ça fonctionne.
    Après normalement, une fois que tu as ajouté les 3 plugins Monklypse dans tes dépendances (org.monklypse.jme2, org.monklypse.jme2.physics, org.monklypse.lwgjl) ça suffit pour fonctionner.

    Si l'update site n'a pas fonctionné, comment as-tu fait pour installer Monklypse ? Tu as juste copié les .jars ?
    Car au début j'avais juste placé les plugins Monklypse dans mon répertoire plugin d'éclipse mais ça ne fonctionnait pas. En passant par l'update site, tout fonctionne après.
    Après quelqu'un de plus expérimenté devrait comprendre bien plus que moi ce qui se passe.
    Contrec

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    L'update du site a très bien marché et j'ai pu ajouté les dépendances!

    Mais quand je veux faire des import org.monklypse.* il me dit qu'il connait pas.

    Et je pense que l'autre erreur est aussi du à ça.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Bonjour Chevreuil,

    Comme te l'as si bien dit Contrec, après un update site, plus besoin d'importer les .jar de jMonkey (je viens de m'en aperçevoir).

    Essaie de faire un clean de ton projet et ensuite un Update Classpath (Click droit sur ton projet => PDE Tools => Update Classpath); en principe, toute bibliothèque nouvellement intégrée devrait être rechargée. Si ça ne marche toujours pas, crée un petit projet test sur un EClipse RCP nouvellement installé et refait entièrement la procédure, t'auras peut-être plus d'infos sur la cause du pb.

    Bon courage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème installation TDLPortIO avec C++ Builder 2010
    Par H3xor dans le forum C++Builder
    Réponses: 6
    Dernier message: 22/02/2011, 19h03
  2. Problème de chargement de plugins RCP
    Par fadjerx dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 25/11/2008, 18h00
  3. Problème installation php avec Apache
    Par DreammyKetty dans le forum Apache
    Réponses: 3
    Dernier message: 15/05/2008, 21h54
  4. Réponses: 2
    Dernier message: 08/08/2006, 09h48
  5. problème installation XMLRAD avec Apache
    Par cdevl dans le forum XMLRAD
    Réponses: 1
    Dernier message: 15/12/2005, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo