mercredi 30 septembre 2009

Creer un site pour votre projet Maven sous Netbeans 6.7

Problème :

En lisant l'article de Batiste Witch : article,
j'ai rencontré une petite difficulté sous Netbeans.Comment avoir la commande mvn site dans l'interface de Netbeans ?

Solution :


Si voulez créer le site web de votre projet sous Netbeans, il y a une petite astuce.

En effet, lorsque vous créez un projet maven sous Netbeans, le répertoire Project Site n'est pas visible.

Pour le rendre visible, il suffit de créer un répertoire nommé "site" dans le répertoire src et de faire
run-> Clean and Build Main Project .

Vous pourrez alors faire un clic droit->generate site sur Project Site dans vue Projet Java.
J'ai trouvé cet astuce sur le blog suivant :
mrhaki.blogspot.com

Remarque : Pour ce qui cherche un bon tutorial sur Maven2 : tutorial

lundi 28 septembre 2009

Netbeans : Créer son racourcis clavier

Problème :

Vous connaissez des raccourcis Eclipse mais il n'en existe pas dans Netbeans.
Remarque : La liste de tous les raccourcis est disponible dans le menu Help -> Keyboard Shortcuts Card.

Solution : Créer sa propre macro avec Netbeans.

Tout comme Excel, vous pouvez enregistrer et éditer votre propre macro.
Voici comment faire :

Supposons que vous voulez effacer une ligne en faisant CTRL + D
1) Démarrer l'enregistrement : Allez dans Edit -> Start recording
2) Sélectionnez une ligne en cliquant plusieurs fois puis supprimez cette ligne.
3) Arrêter l'enregistrement : Allez dans Edit -> Stop recording

La boîte de dialogue suivante apparaît :


Entrez le nom de la macro (ex:delete-line) puis OK.
Vous arrivez sur une fenêtre similaire à celle-ci :



Vous n'avez plus qu'à cliquer sur le bouton "Set shortcut" pour affecter votre macro à un raccourci clavier.

jeudi 24 septembre 2009

JAVA Certification SCJP : les opérateurs

Voici un petit exercice sur les opérateurs.

Exercice :

class Arg {

public static void main(String[] args){

int i = 6;

if ( i && 12 ){

System.out.println("OK!");

} else {

System.out.println("KO!");

}

}

}

What is the result ?

A : OK!

B : KO!

C : compilation fails

D : An exception is thrown at runtime





Solution :

La compilation va échouer du fait de i && 12. En effet, les opérateurs && et || fonctionnent
seulement avec des booléens.

mardi 22 septembre 2009

Nouvelle version d'Eclipse : Eclipse 3.6 Helios M2

La nouvelle version d'Eclipse est disponible. Il y a plusieurs améliorations
tel que l'ajout dans le menu de "
New Open Implementation command" et de nouvelles manières d'extraction de méthode.

Plus de détails sur le site d'Eclipse :

eclipse-news-M1

eclipse-news-M2

lundi 21 septembre 2009

Noop : un langage de programmation fait par Google prévu pour être intégré à la JVM de Sun

Google a crée un nouveau langage (Noop) qui est prévu pour être intégré à la JVM au même titre que JRuby, Groovy .... Cela fut annoncé à la conférence JVM Language Summit. Ce nouveau langage est pensé pour pouvoir le tester plus facilement (exemple : tester avec de l'injection de dépendance est difficile).


Voici les points que Google veut intégrer à ce langage :


- Injection de dépendance intégrée au langage.

- Meilleur testabilité.
- Un code plus lisible.
....


Et ce que Google ne veut pas :


- Plus d'utilisation de code statique

...


Cela semble prometteur !


Plus d'informations sur :
JVM langage summit

Article javaworld

Noop home page

samedi 19 septembre 2009

Exercice Certification SCJP : les bases : les mots clés

Les mots clés reviennent souvent à l'examen. Celui-ci va essayer de vous induire en erreur avec par exemple des mots clés provenant du C++. Il y a aussi d'autres pièges plus vicieux.

Ces exercices vont vous familiariser avec les pièges les plus fréquents :

Exercise 1 :

Given the following :

public class Test {

public static void main(String [] args) {

System.out.println("Zest!");

}


public void assert {

System.out.println("Helllo");

}

}


What is the result ? (choose one)


A Zest!

B Helllo

C Compilation fails

D An exception is thrown at runtime



Exercice 2 :

Given the following :


public class Test {

public static void main(String [] args) {

System.out.println("Zest!");

int true = 1;

System.out.println("true : " + true);

}

}

What is the result ? (choose one)


A Zest!

B Zest true: 1

C Compilation fails

D An exception is thrown at runtime


Exercice 3 :


public class Test {
public static void main(String [] args) {

System.out.println("Zest!");

transient int value = 10;

System.out.println("true : " + true);

}

}

What is the result ? (choose one)


A Zest!

B Zest true: 1

C Compilation fails

D An exception is thrown at runtime


Solution :

Exercice 1 :

La compilation va échouer car assert est un mot clé réservé. Attention, les questions de ce genre reviennent souvent !

The compilation will fail because a method can't have the name of a keyword.
Be carreful at this sort of question. It's often in test and very easy to miss it

Exercice 2 :

La compilation va échouer car on ne peut pas nommer une variable avec le nom d'un mot clé.

Exercice 3 :

La compilation va échouer. Le mot clé transient est lié à la sérialisation des classe java.
Il s'utilise comme ceci :
// la classe que nous allons sérialiser
class Writeable implements java.io.Serializable {
// entier transient
public transient int var1 = 4;
// entier normal
public int var2 = 19;
}

lundi 14 septembre 2009

Exercice Certification SCJP : les bases Main

Vous devez connaître par coeur la signature de la méthode main.
Le test va essayer de vous induire en erreur. Si vous cherchez des livres et
exercices, allez voir cette page : Certification Sun SCJP

Voici une série d'exercices possibles (Les solutions sont à la fin) :


Exercice 1 :

Given the following :

public class Test {
public static void main(String args) {
System.out.println("Helllo");
}

}

What is the result ? (choose one)


A Helllo
B Hell
C Compilation fails
D An exception is thrown at runtime




Exercice 2 :

Given the following :


public class Test {

public static void main(String [] arg) {

System.out.println("Helllo");

}

}


What is the result ? (choose one)


A Helllo

B Hel

C Compilation fails

D An exception is thrown at runtime


Exercice 3 :

Given the following :

public class Test {
public void main(String [] argS) {
System.out.println("Helllo");
}
}

What is the result ? (choose one)

A Helllo
B Hel
C Compilation fails
D An exception is thrown at runtime


Exercice 4 :

Given the following :

public class Test {
public static void main(String [] test) {
System.out.println(test[0]);
}
}

and the command line evocation is
java Test X 1 t
What is the result ? (choose one)

A Test
B X
C 1
D t
C Compilation fails
D An exception is thrown at runtime


Correction Exercice 1 :

Pour que la méthode main soit valide, il manque les [] : public static void main(String [] args) {
Dans notre cas, il n'y a pas d'erreur de compilation car pour le compilateur c'est la signature d'une méthode.
Par contre, à l'éxecution, il y aura une exception lancée car la classe Test ne contiendra pas de méthode main.
La réponse correcte est donc la D.

Exception in thread "main" java.lang.NoClassDefFoundError: Test (wrong name: packet/Test)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Test. Program will exit.

Correction Exercice 2 :

Il va s'afficher Helllo. En effet, le nom de l'argument de la méthode main peut être changé sans aucun problème.

Correction Exercice 3 :

La réponse correcte est la D car le compilateur cherche la signature de la méthode main et ne la trouve pas : public static void main(String [] args) {

Correction Exercice 4 :

La bonne solution est X.

jeudi 3 septembre 2009

Google pour les recherches java

En parcourant les pages du site developpez.com, je suis tombé sur un lien très intéressant :
un google spécialisé dans la recherche JAVA. A voir absolument !
http://www.google.com/coop/cse?cx=010869936631665745446:fpauvrqtgg0

Si vous cherchez d'autres liens, voici ma liste de sites préférés : http://totalprog.blogspot.com/2009/08/les-meilleurs-sites-java.html