…sei stato ufficialmente pimpato!

logo di ClipsClips è un tool per la creazione di sistemi esperti, quindi questo lo connota in un ambito non di largo interesse per le masse.

In questo articolo spiegherò come compilare su Linux i sorgenti di ClipsJNI (un’interfaccia per far comunicare Java con Clips), dato che dev’essere creata una shared library che è distribuita precompilata solo per mac e win. Noi smanettoni ce la compiliamo…

Per prima cosa dobbiamo scaricare l’ultima versione di ClipsJNI (attualmente la 0.3b) da qui.

Una volta scaricato ed estratto l’archivio, entriamo nella cartella library-src e apriamo con un editor di testo il file makefile.linux che richiede qualche modifica manuale:

  1. per prima cosa è necessario trovare la nostra installazione di Java e la rispettiva sottocartella include contenente a sua volta una cartella linux e un prezioso file jni.h. Io l’ho trovata un po’ grossolanamente in realtà, ma un buon punto di partenza può essere dare il seguente comando:
    sudo update-alternatives --config java
    nell’output del comando sarà presente un path con un asterisco davanti che è quello della versione di java da noi utilizzata, recatevi in quella cartella. Di solito però questo è il path della JRE, a noi serve la JDK, ma dovrebbe essere nei paraggi (se l’avete installata, ma se fate sviluppo in java è di sicuro installata), sempre dentro la cartella jvm, cercate finchè non trovate la cartella include descritta in precedenza. Una volta trovata segnatevi il path di questa cartella.
  2. Ora possiamo modificare la riga 39 del file makefile.linux nel seguente modo:
    gcc -o libCLIPSJNI.so -shared -Wall -I/PATH/DELLA/CARTELLA/include -I/PATH/DELLA/CARTELLA/include/linux -lm $(OBJS) CLIPSJNI_Environment.c

    sostituendo al posto di /PATH/DELLA/CARTELLA/include il path trovato al punto 1 (notare che è da sostituire due volte)
  3. Se siamo su un sistema a 32 bit dovremmo aver finito qui e possiamo passare alla compilazione (in realtà non l’ho testato, ma dovrebbe funzionare), se invece siamo su un sistema a 64 bit dobbiamo fare un’altra modifica al file, aggiungendo l’opzione -fPIC. Dobbiamo modificare la riga 33 così:
    gcc -c -fPIC -DLINUX -DALLOW_ENVIRONMENT_GLOBALS=0 -std=c99 -Wall -Wundef -Wpointer-arith -Wshadow -Wcast-qual \
    e la riga 39 (già modificata in precedenza) così
    gcc -o libCLIPSJNI.so -fPIC -shared -Wall -I/PATH/DELLA/CARTELLA/include -I/PATH/DELLA/CARTELLA/include/linux -lm $(OBJS) CLIPSJNI_Environment.c
    (grazie a questo blog colombiano per questo fondamentale passo)

Fatte le modifiche descritte, salviamo il file e apriamo un terminale nella directory library-src, e diamo fiduciosi il comando:

make -f makefile.linux

Se tutto va bene nella directory dovremmo trovare un file chiamato libCLIPSJNI.so. Questo file va spostato in una delle directory indicata in java.library.path. Se non sappiamo quali siano queste directory o non possiamo spostarcelo dentro (per esempio per problemi di permessi), rimando a questa utile guida che descrive come affrontare le varianti di questo passo.

Per quanto mi riguarda io ho usato i consigli indicati al punto 2 della guida sopracitata e, dopo aver scoperto che la cartella /usr/lib64 faceva parte del java.library.path, ho quindi dato il seguente comando:

sudo cp libCLIPSJNI.so /usr/lib64

Dopo aver fatto tutto questo, dovrebbe bastare importare il jar di ClipsJNI (presente sempre nello zip estratto) nel proprio progetto Java per poter cominciare a far interagire i due sistemi.

Per qualunque dubbio, domanda o problema non esitate a commentare! Spero sia stata utile a qualcuno questa guida, dato che a me avrebbe tanto fatto comodo per evitare di cristonare per due giorni dietro a questa compilazione!😉

Commenti su: "Compilare ClipsJNI su Linux (32 e 64 bit)" (2)

  1. Vincezo ha detto:

    Ciao S.M.O.G. ho bisogno di una dritta. Sto costruendo un sistema esperto che deve interfacciarsi con java in windows, ma non riesco ad usare la libreria CLISPJNI.JAR per l’acquisizione dei campi. potresti aiutarmi? grazie in anticipo

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: