diff --git a/tests/Java/test-02-already-exist/README.md b/tests/Java/test-02-already-exist/README.md
new file mode 100644
index 0000000..f478192
--- /dev/null
+++ b/tests/Java/test-02-already-exist/README.md
@@ -0,0 +1,31 @@
+# Test 2 : Compilation où le résultat existe déjà
+
+## Description
+Ce test vérifie que si l'exécutable `Main.class` est déjà présent et que `Main.java`  
+n'a pas été modifié, alors `Bake` ne tente pas de recompiler.
+
+## Fichiers utilisés
+- `Main.java` : Fichier source inchangé.
+- `Bakefile` : Contient les règles de compilation.
+- `Main.class` : Fichier compilé déjà généré.
+
+## Étapes du test
+
+1. **Première compilation**
+   - Exécuter `bake` pour compiler le programme.
+   - Vérifier que `Main.class` est bien créé.
+
+2. **Vérification de l'absence de recompilation**
+   - Exécuter `bake` une seconde fois **sans modifier** `Main.java`.
+   - Aucun message indiquant la recompilation ne doit apparaître.
+
+3. **Modification du fichier source**
+   - Modifier `Main.java` en ajoutant une ligne de code.
+   - Exécuter `bake` à nouveau.
+   - Cette fois, `bake` doit détecter la modification et recompiler `Main.java`.
+
+## Résultat attendu
+- Si `Main.class` existe et que `Main.java` n'a pas été modifié, **`Bake` ne doit pas recompiler.**
+- Si `Main.java` est modifié, `Bake` doit **uniquement** recompiler ce fichier.
+
+✅ **Si `bake` évite de recompiler sans raison et ne recompile que lorsque c’est nécessaire, alors le test est réussi !** 🚀
diff --git a/tests/Java/test-02-already-exist/bake/Bakefile b/tests/Java/test-02-already-exist/bake/Bakefile
new file mode 100644
index 0000000..9c6e5ca
--- /dev/null
+++ b/tests/Java/test-02-already-exist/bake/Bakefile
@@ -0,0 +1,6 @@
+# Bakefile
+
+Main.class: Main.java
+	javac Main.java
+
+all: Main.class
diff --git a/tests/Java/test-02-already-exist/bake/Main.java b/tests/Java/test-02-already-exist/bake/Main.java
new file mode 100644
index 0000000..b0d38a2
--- /dev/null
+++ b/tests/Java/test-02-already-exist/bake/Main.java
@@ -0,0 +1,6 @@
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Ceci est un programme de test du Bakefile !");
+        System.out.println("test");
+    }
+}
diff --git a/tests/Java/test-02-already-exist/make/Main.java b/tests/Java/test-02-already-exist/make/Main.java
new file mode 100644
index 0000000..b0d38a2
--- /dev/null
+++ b/tests/Java/test-02-already-exist/make/Main.java
@@ -0,0 +1,6 @@
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Ceci est un programme de test du Bakefile !");
+        System.out.println("test");
+    }
+}
diff --git a/tests/Java/test-02-already-exist/make/Makefile b/tests/Java/test-02-already-exist/make/Makefile
new file mode 100644
index 0000000..32d72da
--- /dev/null
+++ b/tests/Java/test-02-already-exist/make/Makefile
@@ -0,0 +1,6 @@
+# Makefile
+
+Main.class: Main.java
+	javac Main.java
+
+all: Main.class