NetBeans, Maven e “Failed to load Main-Class manifest attribute from”

SCENARIO

NetBeans con il plugin per Maven (Mevenide), si crea un nuovo progetto, si imposa nelle Properties -> Run -> Main Class del progetto il nome della classe che contiente il metodo main, si fa un Run e tutto funziona. A questo punto, si prende il file .jar generato (nella directory target del progetto) e si prova a farlo partire esternamente a NetBeans con il comando:
java -jar xxxxx.jar

ma si ottiene questo errore:
Failed to load Main-Class manifest attribute from xxxxx.jar

Il problema e’ identificabile nel fatto che ogni jar (e’ un archivio compresso, quindi basta scompattarlo) ha al suo interno un file META-INF/MANIFEST.MF che deve contenere un valore, Main-Class, con il nome della classe con il metodo main del proprio programma. Ci si aspetterebbe che una volta impostato questo valore nelle proprieta’ del progetto, questo venga riportato automaticamente anche nel file MANIFEST.MF, ma purtroppo cosi’ non e’ ed occorre fare tutto a mano. Neanche nelle Best Practices for Apache Maven in NetBeans 6.x sembra ci sia scritto nulla sull’argomento.

 

LA CONFIGURAZIONE MANUALE

Il file pom.xml e’ tipico di tutti i progetti Maven e contiente alcune configurazioni del progetto, come ad esempio i progetti da includere in quello corrente ed altre cose. Per modificare il MANIFEST.MF bisogna andare ad agire proprio su questo file.

Si tratta di includere alcuni paramentri che verranno passati al plugin maven-jar-plugin, chiamato in fase di compilazione del progetto, che a sua volta usera’ questi paramentri con il Maven Archiver, responsabile della generazione del MANIFEST.MF da includere nel .jar finale. Ci si puo’ iniziare a fare una cultura sull’argomento partendo dal Manifest customization.

Continue reading

Font Consolas antialiasing per Netbeans e Ubuntu Linux

netbeans_antialiasing_on.pngIn tema di font monospace per ambienti di sviluppo, sembra che negli IDE di tutto il mondo il Lucida Console e il Courier New stiano perdendo terreno in favore del Consolas.

Personalmente, devo ammettere che ha il suo fascino usandolo con Visual Studio, e l’ho voluto quindi riportare anche con NetBeans, l’IDE Java che uso con la mia KUbuntu.

Per prima cosa, occorre installare il font nella propria linux-box. Per farlo si puo’ utilizzare un pacchetto gia’ pronto, contenente un carattere molto simile al Consolas, chiamato Inconsolata. Il pacchetto da cercare e’ ttf-inconsolata, e per installarlo da terminale su sistemi debian e ubuntu basta digitare:
sudo apt-get install ttf-inconsolata

Se invece volete proprio il Consolas, basta “prevelarlo” da qualche programma Windows che gentilmente lo mette a disposizione, come ad esempio il Microsoft PowerPoint 2007 Viewer. Si scompatta il contenuto del file di installazione con cabextract e si copiano il file consolas?.ttf nella propria cartella ~/.fonts/ (dovrebbero essere 4 file), oppure in quella di sistema. Basta poi fare un refresh della propria font cache con il comando sudo fc-cache -f -v. Una guida passo passo e’ contenuta in questo link.

Continue reading

Un ambiente di sviluppo per Funambol

Funambol Riporto i passi che ho seguito per la configurazione di ambiente di sviluppo, usato per realizzare un programma in Java che si integra con Funambol, una suite per la messaggistica 2.0 completamente open source. Il progetto mi sfizia molto, e sicuramente scrivero’ qualche riga dopo aver completato questa fase, dato che generalmente mi piace riflettere dopo aver fatto esperienza.

Lavorando sotto GNU/Linux, le istruzioni fanni riferimento alla configurazione per (K)(X)Ubuntu 8.04, usando NetBeans 6.0.1, Java 1.6, Maven 2 ed altro free software, mentre la versione di Funambol e’ la 7. Suppongo, comunque, che con pochi adattamenti la procedura sia applicabile anche ad altre distribuzioni e a Windows.

Inoltre, consiglio di usare una macchina virtuale e non il proprio sistema per lo sviluppo. Si ha il vantaggio cosi’ di avere un ambiente pulito e unicamente votato a questo scopo. Tanto di virtual machine con XUbuntu preinstallato (la piu’ leggera tra le distro desktop oriented della Canonical) se ne trovano diverse, a partire dalle appliance VMware.

Installare l’IDE + Java

Ho scelto NetBeans come IDE di sviluppo rispetto ad Eclipse per diversi motivi: mi e’ sembrato migliore sul fronte RAD, dedicato solo a Java e integrare Maven e’ stato piu’ facile. Comunque e’ possibile usarli entrambi, a voi la scelta.

sudo apt-get install netbeans

E dato che veniva consigliata l’installazion di diversi pacchetti con font, ho eseguito anche quella:

sudo apt-get install ttf-bengali-fonts ttf-kannada-fonts ttf-oriya-fonts ttf-telugu-fonts

Ultima cosa, il JDK Java. Ho scelto di installare la versione 1.6, ma anche la 1.5 va bene.

sudo apt-get install sun-java6-sdk sun-java6-jre

Continue reading