You are currently browsing the monthly archive for dicembre 2008.

Java e LinuxIeri mi e capitato di dover compilare un file Java sulla mia Linux Box e quando sono andato lì per farlo da riga di comando mi diceva di non trovare il file allora mi sono messo a girellare e veramente non avevo nulla. Ma come? Se fino all’altro ieri usavo Eclipse come mai oggi non funziona. Allora ho scoperto che installando Eclipse con apt-get si tira giù si il JDK, ma li mette chissà dove e chissà in quale modo, infatti cercando nella macchina si trova qualche classe nelle cartelle di Eclipse che ricorda i file nel /bin che si usano per complire, debuggare o documentare.
Poche chiacchiere mi sono scaricato il file del JDK, che trovate a questo indirizzo, e l’ho installato richiamando il file da linea di comando:

$ chmod +x jdk-6u11-linux-i586.bin
$ ./jdk-6u11-linux-i586.bin

Otteniamo un lungo output, in pratica e la licenza con cui viene distribuita la piattaforma:

This is where you agree to their license. Press the space bar to scroll down in “More”.

alla fine della licenza ci sarà una domanda a cui noi risponderemo di si, è qui che daremo conferma per l’installazione

Do you agree the the above license terms? [yes or no]
yes

A questo punto ancora un lungo output scorrerà sul nostro schermo, la procedura di installazione durerà un po, dipende tutto dalla vostra macchina. Appena finito troverete i vostri file in /usr/share/java, se non sarà lì, ma sarà nella directory dove avete salvato il file non preoccupatevi, copiatelo senza problemi.
Fatto questo non resta che dire al vostro sistema dove trovare i file delle classi, i binari, ecc. di java, per farlo aprite il file .bash_profile nella vostra home directory ed inserite quanto segue:

PATH=/usr/java/jdk1.6.0_11/bin:$PATH:$HOME/bin:./
export PATH
export JAVA_HOME=/usr/java/jdk1.6.0_11export CLASSPATH=/usr/java/jdk1.6.0_11/lib/tools.jar:/usr/java/jdk1.6.0_11/jre/lib/rt.jar:./

appena fatto salvate e chiudete il file, ora non ci resta che testare il tutto. Per farlo ciserviamo del classico programma che si impara quando si inizia ad apprendere e studiare un nuovo linguaggio, Hello World, io ovviamente lo modifico sempre mettendo Hello Giasone, ma voi fate un po come volete. Quindi aprite un editor di testi e incollate il questo codice:

public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello Giasone");
}
}

salvate il file con il nome Hello.java e provate ad eseguirlo. In Java i file sorgenti vanno prima “compilati” per tradurli in bytecode eseguibile dalla VM, per far ciò dalla riga di comando:

$ javac Hello.java

Vedremo che nella cartella apparirà il file Hello.class, questo è il file eseguibile proviamo quindi ad eseguirlo:

$ java Hello
Ciao Giasone

Ecco allora che tutto funziona!!! Qindi non vi resta che iniziare a giocherellare con il vostro codice. Per grandi progetti vi consiglio di utilizzare ambienti IDE più complessi che vi offrono molte facility in più ed utilizzare questo metodo solo per piccoli file o progetti semplici. Non mi resta che augurarvi un buon lavoro e Enjoy your Java Console.

P.S. Tutto questo e stato testato su una Debian e con il JDK 6 di java ma dovrebbe valere anche per le altre distro, per quelle distibuzioni che supportano i pacchetti rpm esiste anche una versione del JDK con estensione rpm che non ho però provato.

— Fine —
Post scritto con KBlogo

Annunci

In alcuni casi abbiamo bisogno di un modo per inviare le email dal nostro web server locale attraverso la funzione PHP mail(), ma quando ci si scontra con Sendmail la cosa ci fà un po impallidire, Sicuramente sendmail è un software valido, potente e molto versatile, ma molto complesso sia per quanto riguarda il funzionamento sia per quanto riguarda la configurazione. Per ovviare al problema arriva in nostro soccorso un software veramente leggero e facile da configurare, sSMTP. Ma passiamo subito alla pratica:

  • Installare ssmtp e abbastanza semplice, se siamo in un ambiente Debian/Ubuntu e simili basta un apt-get install ssmtp ma lo stesso vale per Fedora e simili, sicuramente troverete il modo di farlo quindi andiamo avanti visto che questo non è oggetto del post.
  • Appena installato possiamo modificare con il nostro editor preferito, vi, il file di configurazione che troviamo in /etc/ssmtp/ssmtp.conf commentando o aggiungendo le righe come le troviamo all’interno del file che segue:
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
#root=mioindirizzo@dominio.tld

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.mioserversmt.tld

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
#hostname=www.altropiano.com

#UseSTARTTLS=YES
AuthUser=nomeutente
AuthPass=password

#AuthMethod=LOGIN

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
  • Una volta configurato ssmtp possiamo passare alla modifica del file di configurazione di php.ini, il file di configurazione di PHP che troviamo in /etc/php5/apache2/php.ini , se su sistemi debian-like cercando lla direttiva che troviamo di seguito inserendo il path di ssmtp:
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/ssmtp -t
  • Ora non ci resta che riavviare il server web apache in modo che il php.ini venga ricaricato;
/etc/init.d/apache2 restart
  • Arrivati a questo punto abbiamo finito quindi non ci resta che testare il funzionamento ad esempio inviando una mail di prova da riga di comando digitanto:
$ ssmtp emaildestinatario@dominio.tld
invio a vuoto
testo del messaggio ed invio
ctrl-d per finire;

oppure

$ mail -s "Oggetto del messaggio" emaildestinatario@dominio.tld
CC: emailincopia@dominio.tld
testo del messaggio
inserire un punto in una riga vuota e premere invio per finire;
  • E qui siamo veramente alla fine. Se volete fare un ulteriore test potete crearvi un file php ad hoc che implementi la funzione mail(). Se avete riscontrato qualche problema o trovate delle imprecisioni o volete solo dire la vostra sentitevi liberi di commentare.

— Fine —
Post scritto con KBlogo

my-team-uses-the-pomodoro

Giasone on Twitter

Flickr Photos