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 Java Discussion :

Java et SWI-Prolog sur Eclipse


Sujet :

Eclipse Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut Java et SWI-Prolog sur Eclipse
    Bonjour a tous et a toutes. Je crie au secours...

    Je suis sur une application java qui utilise SWI-Prolog sur Eclipse via JPL. Je suis debutant sur Prolog et je ne suis pas non plus fan de java. J' ai tout de mem parcouru ce forum et cela m a beaucoup edifie sauf que j ai quelques questions de debutants qui perdurent.

    1. J'ai pris, sur le net, un petit code en Prolog, comme l environnement n est pas entierement celui du Prolog( Je suis dans Eclipse), je ne sais pas ou aller(i.e. ou trouver l'interpreteur de commande dans eclipse) pour faire des requetes prolog afin d executer, sans prealablement tenir compte de Java.

    2. Si je veux par exemple invoquer Prolog dans mon programme Java, comment faire?

    Merci de me repondre.
    @bientot, je l espere

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par voltera Voir le message
    1. J'ai pris, sur le net, un petit code en Prolog, comme l environnement n est pas entierement celui du Prolog( Je suis dans Eclipse), je ne sais pas ou aller(i.e. ou trouver l'interpreteur de commande dans eclipse) pour faire des requetes prolog afin d executer, sans prealablement tenir compte de Java.
    Tu peux exécuter des commandes externes dans Eclipse via "External tools" (la flèche verte avec une boite à outils rouge en bas à droite).

    Citation Envoyé par voltera Voir le message
    2. Si je veux par exemple invoquer Prolog dans mon programme Java, comment faire?
    Tu l'as dit toi-même dans ton introduction : en utilisant la librairie de communication JPL.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut prolog et java sur eclipse
    en fait, j ai essaye d executer en utilisant l outil External tools mais il se produit cette erreur:
    Exception occurred executing command line.
    Cannot run program "C:\Documents and Settings\Administrator\workspace\conflictDetector\src\fam.pl" (in directory "C:\Documents and Settings\Administrator\workspace\conflictDetector\src"): CreateProcess error=193, %1 ²»ÊÇÓÐЧµÄ Win32 ӦÓó
    et je sais pas pourquoi?

    Pour ce qui est de la seconde question, je voudrais savoir s il n ya pas au moins une ligne de code a ecrire afin que JPL fasse la liaison entre les deux ou la liaison est elle automatique?

    je te remercie tout de meme de m ouvrir les yeux a ce sujet.
    @bientot je l' espere.

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    1) Pour l'exception, elle est normalle :
    On ne peut pas lancer un fichier pl qui n'est pas un programme. il faut lancer l'exécutable prolog et lui passer en paramètre le fichier pl qu l'on veut exécuter.

    2) Evidemment, il y a du code à écrire pour utiliser cette librairie : inclure une libraire dans un programme donne juste accès aux fonctions de celle-ci, mais ne fait strictement rien de plus. Pour utiliser ces fonctions, il faut du code...

    Concernant le fonctionnement de l'API JPL, et le code à écrire, tu trouveras en faisant une recherche (google & co) des tutoriaux expliquant son fonctionnement.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut prolog et java sur eclipse(OS Windows)
    je te remercie Cyber..
    Je trouve tes reactions tres cool dans le forum... et tes reponses me font vraiment progresser. Cependant, en parcourant le forum, j ai entendu certains membres speculer sur l'utilisaton de l'interface JNI

    1. Aurais-je besoin du JNI en plus comme interface de communication? car il me semble qu il sert uniquement a interfacer uniquement le C/C++ et Java.

    2.je veux creer une classe java pour invoquer un fichier prolog(input de mon appli Java)depuis java de sorte que java reponde a mes requetes(faits et regles)comme Prolog l'aurait fait dans un environnement qui lui est propre(interpreteur prolog).
    question: quequ'un pourrait il m eclairer pour demarrer, ou aurait il pris connaissance d'un bout de code pouvant m'aider.
    Merci d'avce

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut ou se trouve erreur prolog et java sur eclipse?
    bonjour a tous.
    j ai ecris un le code ci-dessous en java pour verifier par la query q1, que mon fichier prolog fam.pl est convenablement consulte. Seulement, ce code m'affiche l'erreur suivante:
    erreur jpl.PrologException: PrologException: error(existence_error(source_sink, 'D:workspaceonflictDetectorsrc\fam.pl'), _0)
    et je sais pas pourquoi?
    j'ai meme essaye d'ajouter la classe JPLException dans le meme package que ma classe java:access et sa pas marche.
    Si quelqu'un si connait, priere de me venir en aide.
    Merci.


    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
     
    import jpl.Query; 
     
    public class access
    { 
     
      public access() { 
      }	 
    	  public static void main( String argv[] ) 
    	  {
    		 // access ac =new access();
    		  try
    		  {
    		  String t1 = "consult('D:\\workspace\\conflictDetector\\src\\fam.pl')";
              Query q1 = new Query(t1);
              System.out.println( t1 + " " + (q1.hasSolution() ? "succeeded" : "failed") );
    		  } 
              catch(Exception e)
              {
            	  System.out.println("erreur  " + e.toString());
                  return;
              }
    }
    }

  7. #7
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Tu te trompes dans l'utilisation de l'objet Query. Il est préférable de séparer la commande de ses arguments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Query q1 = new Query(
       "consult",
       new Term[] { new Atom("D:\\workspace\\conflictDetector\\src\\fam.pl") }
    );
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut suite:probleme de var globale-locale java
    Bonjour cyber, je te remercie une fois de plus pour ta reponse, sayez, cette question est regle. Cependant, j'ai un autre souci: le chargement de mon fichier prolog etant correct, j' ai essaye d'ecrire le code ci-joint, pour qu'il reponde a une requete specifique; mon code semble bon,sauf qu'il m'affiche dans la console ceci:
    % D:/workspace/conflictDetector/src/fam compiled 0.00 sec, 2,720 bytes
    consult('D:/workspace/conflictDetector/src/fam') succeeded
    X = null
    X = null
    Test 2
    cela signifie qu'en sortant de run1(),il ecrase X, ce qui est normal,puisque une var declare dans une fonction n'existe que pdt l'exe.de la fonction.
    Qyestion?je sais que je dois m'arranger a avoir une var globale, mais depuis trois jours, je galere, j'ai tout tente et je ne sais plus quoi faire? je joins au mail suivant mon code et si quelqu'un a une idee, qu'il n'hesite pas a m'aider.
    Merci et a bientot.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Par défaut moncodejava pour variableglobale
    le fichier prolog est bien consulte et je ne sais comment gerer la variable X...
    SVP, dites moi exactement ou je dois bidouiller pour recuperer le resultat de la fonction run1() dans la variable X.

    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
    import jpl.*;
     
    import java.util.Hashtable;
     
    public class Test2 {
    //private static Variable X = new Variable(); 
     
    	/**
             * @param args
             */
    	public Test2(){
     
    	}
     
       public void run(){
     
    		// Test2 Test =new Test2();
    		try
    		{
    			/* String t1 = "consult"(["fam.pl"]); 
    			 Query q1 = new Query( 
    					"consult", 
    					new Term[] {new Atom("['fam.pl']")}); 
    			boolean  t2 = (q1.query());    
    			System.out.println( t1 + "test " + t2);*/
     
    			 String t1 = "consult('D:/workspace/conflictDetector/src/fam')";
    			 Query q1 = new Query(t1);
              System.out.println( t1 + " " + (q1.hasSolution() ? "succeeded" : "failed") );
    		} 
    		catch(Exception e)
    		{
    			System.out.println("erreur  " + e.toString());
    			return;
    		}
       }
    	public void run1(){
    		 Variable X = new Variable();
    		Term args[] = { X, new Atom("joe" )};
    		Query q4 = 
    			new Query( 
    				"child_of", 
    				args); 
    		java.util.Hashtable[] solutions = q4.allSolutions(); 
    		for ( int i=0 ; i< solutions.length ; i++ ) { 
    		System.out.println( "X = " + (solutions[i].get(X))); 
    		}
     
            System.out.println(" Test" + " " + solutions.length); 
     
     
     
     
     
     
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Test2 Test = new Test2();
    		  Test.run();
    		  Test.run1();
     
     
    	}
     
    }

Discussions similaires

  1. Bloqué sur Eclipse Java: "source not found"
    Par EnRadeSurEclipse dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 17/12/2007, 09h16
  2. SWI-Prolog et Java
    Par t_aicha dans le forum Prolog
    Réponses: 4
    Dernier message: 13/06/2007, 23h46
  3. vue java sur Eclipse
    Par snetechen dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 03/07/2006, 12h15
  4. [Eclipse][Java]Problème de compilation sur CTRL+S
    Par ZeKiD dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 27/05/2004, 11h49

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