Problem z połaczeniem Java-Prolog

0

zrobilem aplikacje ktora za pomoca jpl wykorzystuje prolog, w netbeansie wszystko dzial elegancko ale jeśli odpale z pliku jar to okienko sie pojawia spoko ale wszystkie funkcje prologowe nie dzialaja, po wpisaniu w konsoli i klikaniu na klawisz odpowiadajacy funkcji prologowej wyskakuje bład: error: [thread 2] source_sink does 'prolog/parser.pl' not exist, tak jakby nie widzialo plikow prologowych a potem jest consult('prolog/parser.pl') ok i nie wiem o co mu chodzi, w zalaczniku wrzucilem screen z bledem
bede wdzięczny za pomoc

0

Domyślam się że w netbeansie ustawiłeś sobie ścieżkę do tych plików prologa, a do jara tych plików nie wpakowałeś (a ścieżki są pewnie inne).

0

pewnie tak, a jak te siezki do jar wrzucic?

0

Najprościej będzie te pliki prologa dołączyć do projektu (nie podlinkować tylko skopiować), ustawic ścieżki względne a potem spakować to wszystko do jara.

0

jakbys mógł mi to tak "łopatologicznie" wytłumaczyc krok po kroku co trzeba zrobic bo ja nie jestem w tym zbyt obyty, bede Ci bardzo wdzieczny

0

Trudno mi cokolwiek napisać "krok po kroku" skoro nie napisałeś NIC na temat projektu, ale powróżę z kuli:

  • pliki prologa kopiujesz sobie do jakiegoś katalogu w projekcie
  • ustawiasz build-path czy tam class-path tak zeby te pliki widziało (ew jeśli w kodzie zahardkodowałeś ścieżki to wstawiasz tam scieżki względne, tzn względem katalogu z projektem)
  • generujesz jara i voila.
0

Witam, mam pytanie próbuje już cały dzień ustawić połączenie prologa w javie za pomocą jpl i za nic w świecie nie mogę się połączyć z prologiem. Przeszukałem i przeczytałem bardzo dużo na ten temat i nic mi to nie pomogło. Cały czas pokazuje mi się ten sam błąd. W związku z tym moje pytanie mógłby mi ktoś opisać, wytłumaczyć jak zrobić takie połączenie w win7 za pomocą np. NetBeans.

Kod na którym eksperymentowałem wygląda następująco:

package testy_evi1.pkg1;
import jpl.Query;
import jpl.*;
public class Testy_evi11 {
    public static void main(String[] args) {
       Query q1 = new Query( 
        "consult", 
        new Term[] {new Atom("test.pl")} 
    );
       System.out.println( "consult" + (q1.hasSolution() ? "succeeded" : "failed"));
        
        //testy wcześniejsze
        //String tekst = "consult('test.pl')";
        //Query zapytanie = new Query(tekst);
        //if(zapytanie.hasSolution()) {
          //  System.out.print("Dziala");
        //}
        //próba 3
        //String tekst1 = "evi";
        //Query zapyt1 = new Query(tekst1);
        //System.out.println(zapyt1.hasSolution());
    }
}
 

Błąd jaki mam cały czas wygląda następująco:
Witam, mam pytanie próbuje już cały dzień ustawić połączenie prologa w javie za pomocą jpl i za nic w świecie nie mogę się połączyć z prologiem. Przeszukałem i przeczytałem bardzo dużo na ten temat i nic mi to nie pomogło. Cały czas pokazuje mi się tego typu błąd. W związku z tym moje pytanie mógłby mi ktoś opisać, wytłumaczyć jak zrobić takie połączenie w win7 za pomocą np. NetBeans.

Kod na którym eksperymentowałem wygląda następująco:

package testy_evi1.pkg1;
import jpl.Query;
import jpl.*;
public class Testy_evi11 {
    public static void main(String[] args) {
       Query q1 = new Query( 
        "consult", 
        new Term[] {new Atom("test.pl")} 
    );
       System.out.println( "consult" + (q1.hasSolution() ? "succeeded" : "failed"));
        
        //testy wcześniejsze
        //String tekst = "consult('test.pl')";
        //Query zapytanie = new Query(tekst);
        //if(zapytanie.hasSolution()) {
          //  System.out.print("Dziala");
        //}
        
        //String tekst1 = "evi";
        //Query zapyt1 = new Query(tekst1);
        //System.out.println(zapyt1.hasSolution());
    }
}
 

Błąd jaki mam cały czas wygląda następująco:
http://postimage.org/image/qwnvzhnbd

user image

Bardzo proszę o pomoc w skonfigurowaniu tego. Chodzi mi tylko i wyłącznie o połączenie się z prologiem dalej już sobie poradzę.

0

potrzebuje tylko krótkiego wyjaśnienia co robię źle ;/ bo nie mam już nerwów do tego.

0

Ok odnalazłem błąd jeśli ktoś będzie miał podobny problem to może mu się to przyda: należy dokładnie ustawić zmienne środowisko i w pliku PATH podać dokładny adres do SWI prologa a w nim do pliku \bin oraz nie wiem dlaczego tak jest jak podawałem adres w PATH C:\swipl\bin na końcu PATH po średniku to nie działało mi to jak dodałem go na początku to zaczął mi działać. Taka złośliwość rzeczy martwych ;)

wskazówka pliki prologowskie najlepiej umieszczać bezpośrednio w katalogu projektu bez zagłębiania się głębiej do folderów projektu.

CLASSPATH nie wiem dlaczego ale nie działa mi pod win7 tak więc trzeba(przynajmniej w moim przypadku) dodawać plik jpl.jar ręcznie do projektu ale to już nie problem.

Tak czy owak dziękuję za pomoc ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1