vendredi, juin 29, 2007

Blogs concernant la plateforme Eclipse RCP

Un billet dont l'objectif est de lister l'ensemble des Blogs en relation avec le développement de clients riches via Eclipse RCP

Voilà une liste
Si vous avez des adresses, n'hésitez pas

Exemples JFace

Un site qui regroupe un ensemble d'exemples concernant JFace. Les exemples sont décomposés en quatre catégories :
  • Dialogs
  • Layout
  • Viewers
  • Window
L'aspect intéressant pour les exemples des Viewers est de présenter des fonctionnalités de Eclipse 3.3

Voici le lien JFaceSnippets

jeudi, juin 14, 2007

Un mini cours sur Java Web Start

Je viens de mettre à disposition un cours sur le déploiement d'applications Java via la technologie Java Web Start.

Au menu de mini cours :
  • Archive JAR
  • Signer un JAR
  • Format JNLP
Voilà le lien du cours : http://mbaron.developpez.com/javase/jws

Bonne lecture ...


Cours Eclipse : petite modification ...

La série de cours consacrée à la plateforme Eclipse a quelque peu changée. Vous trouverez maintenant un PDF pour découvrir l'univers de la plateforme Eclipse via une petite introduction (Java IDE, Frameworks [IDE, Outils et applications] et la communauté Eclipse) et également un PDF pour découvrir la boîte à outils SWT.

D'autres PDF arriveront prochainement ...

Les liens pour les supports de cours : introduction, SWT.

mercredi, juin 06, 2007

Java Native Access (JNA)

Il y a des projets qui font plaisirs quand on les découvre et JNA en fait partie. Ce projet actuellement dans l'incubateur des prochaines JDK offre la possibilité d'appeler des fonctions natives sans avoir besoin de passer explicitement par du JNI. Fini le temps où pour exploiter une fonction Win32 existante il fallait sortir l'arme lourde. J'entends par là qu'il fallait se munir d'un compilateur C, générer un .h et développer du C. Par contre si vous avez besoin de passer par du code natif vous avez simplement besoin de construire une DLL. La partie avec Javah n'est plus nécessaire.

Ce projet s'occupe donc de masquer le développement de la couche JNI pour appeler du code natif.

Bref voici un exemple tiré du site du projet. L'objectif étant de faire appel à la fonction GetSystemTime qui se trouve dans la DLL kernel32.lib.

On commence par définir une interface dont le but et la définition des fonctions et structure à exploiter. Noter l'héritage de StdCallLibrary qui précise l'ordre des paramètres. Enfin, on récupère une référence sur l'ouverture de la librairie concernée.
public interface Kernel32 extends StdCallLibrary {
Kernel32 INSTANCE = (Kernel32)Native.loadLibrary("kernel32", Kernel32.class);

public static class SYSTEMTIME extends Structure {
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;
}

void GetSystemTime(SYSTEMTIME result);
}
Au niveau utilisation de l'interface précédente voilà un petit exemple :
public class Kernel32Impl {
public static void main(String[] argv) {
Kernel32 lib = Kernel32.INSTANCE;
Kernel32.SYSTEMTIME time = new Kernel32.SYSTEMTIME();
lib.GetSystemTime(time);
System.out.println("Today's integer value is " + time.wDay);
}
}
Le projet JNA se trouve ici : JNA
Les sources du projet JNA sont disponibles. Vous trouverez par ailleurs un ensemble d'exemples.
Il y a également sur le blog de Romain Guy un post qui en parle.

Dans le même style que JNA, on peut trouver
A noter que JNA est dans l'incubateur de la JDK donc potentiellement disponible dans les prochaines versions de Java.