Réalisation d'un script.bat à partir d'un programme en java sous eclipse
Résolu/Fermé
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
-
Modifié le 15 mai 2020 à 21:04
AEROTOWER Messages postés 11 Date d'inscription vendredi 15 mai 2020 Statut Membre Dernière intervention 18 mai 2020 - 18 mai 2020 à 21:09
AEROTOWER Messages postés 11 Date d'inscription vendredi 15 mai 2020 Statut Membre Dernière intervention 18 mai 2020 - 18 mai 2020 à 21:09
A voir également:
- Réalisation d'un script.bat à partir d'un programme en java sous eclipse
- Waptrick java football - Télécharger - Jeux vidéo
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Jeux java itel football - Télécharger - Jeux vidéo
- Eclipse java download - Télécharger - Langages
- Comment mettre en veille un programme sous windows 10 - Guide
10 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié le 15 mai 2020 à 21:02
Modifié le 15 mai 2020 à 21:02
Bonjour,
Essayes avec ceci dans ton fichier .bat :
Essayes avec ceci dans ton fichier .bat :
"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java
"C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku grille1.txt
pause
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
15 mai 2020 à 21:55
15 mai 2020 à 21:55
Bonsoir,
J'ai essayé ce que tu m'as proposé, et ça n'a rien changé
J'ai essayé ce que tu m'as proposé, et ça n'a rien changé
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 09:32
16 mai 2020 à 09:32
Et quels sont les messages affichés ?
Soit la compilation échoue, soit l'exécution, mais si tu ne nous donnes pas les messages d'erreurs on ne peut pas t'aider à les résoudre...
Soit la compilation échoue, soit l'exécution, mais si tu ne nous donnes pas les messages d'erreurs on ne peut pas t'aider à les résoudre...
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
Modifié le 16 mai 2020 à 11:08
Modifié le 16 mai 2020 à 11:08
mon premier script affiche le message suivant :
LanceSudoku.bat
Et avec ce que tu m'as donné plus haut, ça donne ceci :
LanceSukoku.bat
J'ai constaté qu'il y avait un souci avec la méthode main, mais même en l'a modifiant, ça ne change rien, du coup je ne sais pas comment résoudre ce problème
LanceSudoku.bat
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Defenir l'environnement de compil
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>set path="C:\Program Files\Java\jdk-14\bin"
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Compiler les sources
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>javac Sudoku.java
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Executer les programmes
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>java -cp . monSudoku grille1.txt
Error: Could not find or load main class monSudoku
Caused by: java.lang.ClassNotFoundException: monSudoku
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>java -cp . Sudoku
Exception in thread "main" java.nio.file.NoSuchFileException: fichier\monSudoku grille1.txt
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:120)
at java.base/java.nio.channels.FileChannel.open(FileChannel.java:292)
at java.base/java.nio.channels.FileChannel.open(FileChannel.java:345)
at java.base/java.nio.file.Files.lines(Files.java:4102)
at java.base/java.nio.file.Files.lines(Files.java:4194)
at Sudoku.<init>(Sudoku.java:24)
at Sudoku.main(Sudoku.java:130)
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause
Appuyez sur une touche pour continuer...
Et avec ce que tu m'as donné plus haut, ça donne ceci :
LanceSukoku.bat
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Defenir l'environnement de compil
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>set path="C:\Program Files\Java\jdk-14\bin"
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Compiler les sources
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>javac Sudoku.java
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Executer les programmes
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>java -cp . monSudoku grille1.txt
Error: Could not find or load main class monSudoku
Caused by: java.lang.ClassNotFoundException: monSudoku
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>java -cp . Sudoku
Exception in thread "main" java.nio.file.NoSuchFileException: fichier\monSudoku grille1.txt
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:120)
at java.base/java.nio.channels.FileChannel.open(FileChannel.java:292)
at java.base/java.nio.channels.FileChannel.open(FileChannel.java:345)
at java.base/java.nio.file.Files.lines(Files.java:4102)
at java.base/java.nio.file.Files.lines(Files.java:4194)
at Sudoku.<init>(Sudoku.java:24)
at Sudoku.main(Sudoku.java:130)
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku grille1.txt
Exception in thread "main" java.nio.file.NoSuchFileException: fichier\monSudoku grille1.txt
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:120)
at java.base/java.nio.channels.FileChannel.open(FileChannel.java:292)
at java.base/java.nio.channels.FileChannel.open(FileChannel.java:345)
at java.base/java.nio.file.Files.lines(Files.java:4102)
at java.base/java.nio.file.Files.lines(Files.java:4194)
at Sudoku.<init>(Sudoku.java:24)
at Sudoku.main(Sudoku.java:130)
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause
Appuyez sur une touche pour continuer...
J'ai constaté qu'il y avait un souci avec la méthode main, mais même en l'a modifiant, ça ne change rien, du coup je ne sais pas comment résoudre ce problème
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 11:13
16 mai 2020 à 11:13
Ce que je t'ai donné suffisait pour le .bat tout le reste que tu as mis avant ne sert à rien.
Le problème vient du code, tu n'utilises pas le paramètre du programme, car tu as écrit le chemin du fichier en dur dans le code...
Il faut modifier
Le problème vient du code, tu n'utilises pas le paramètre du programme, car tu as écrit le chemin du fichier en dur dans le code...
Il faut modifier
Paths.get("fichier/monSudoku grille1.txt"))par
Paths.get(args[0]).
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
Modifié le 16 mai 2020 à 11:57
Modifié le 16 mai 2020 à 11:57
Même après avoir modifié le fichier.bat et le programme comme indiqué précédemment, j'ai toujours un problème avec la méthode main
LanceSudoku.bat
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\java.exe" monSudoku grille1.txt
Error: Could not find or load main class monSudoku
Caused by: java.lang.ClassNotFoundException: monSudoku
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause
Appuyez sur une touche pour continuer...
De plus, dans le fichier.bat, je dois invoquer l'exécution par la commande suivante : java -cp . monSudoku grille1.txt (consigne demandée)
C'est pour ça que j'avais gardé cela dans mon fichier.bat
LanceSudoku.bat
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\java.exe" monSudoku grille1.txt
Error: Could not find or load main class monSudoku
Caused by: java.lang.ClassNotFoundException: monSudoku
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause
Appuyez sur une touche pour continuer...
De plus, dans le fichier.bat, je dois invoquer l'exécution par la commande suivante : java -cp . monSudoku grille1.txt (consigne demandée)
C'est pour ça que j'avais gardé cela dans mon fichier.bat
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 12:11
16 mai 2020 à 12:11
-cp .ne sert à rien, c'est la valeur par défaut, donc avec ou sans ça doit faire la même chose.
Le problème c'est que "monSudoku" ça n'existe pas.
Le nom de ta classe c'est "Sudoku", tu compiles le fichier Sudoku.java, ça génère un fichier Sudoku.class, tu dois donc exécuter
java Sudoku
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
16 mai 2020 à 13:05
16 mai 2020 à 13:05
Donc si je dois exécuter
REM ---- Defenir l'environnement de compil
set path="C:\Program Files\Java\jdk-14\bin"
REM ---- Compiler les sources
javac Sudoku.java
REM ---- Executer les programmes
java -cp . Sudoku
pause
et ça a donné ceci :
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Defenir l'environnement de compil
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>set path="C:\Program Files\Java\jdk-14\bin"
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Compiler les sources
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>javac Sudoku.java
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Executer les programmes
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>java -cp . Sudoku
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at Sudoku.main(Sudoku.java:130)
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause
Appuyez sur une touche pour continuer...
En fait, avec ce que tu me dis je ne comprends pas la deuxième ligne que tu m'as proposé
"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java
"C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku grille1.txt
pause
java Sudoku
, j'ai modifié mon fichier.bat comme suit :
REM ---- Defenir l'environnement de compil
set path="C:\Program Files\Java\jdk-14\bin"
REM ---- Compiler les sources
javac Sudoku.java
REM ---- Executer les programmes
java -cp . Sudoku
pause
et ça a donné ceci :
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Defenir l'environnement de compil
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>set path="C:\Program Files\Java\jdk-14\bin"
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Compiler les sources
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>javac Sudoku.java
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>REM ---- Executer les programmes
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>java -cp . Sudoku
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at Sudoku.main(Sudoku.java:130)
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause
Appuyez sur une touche pour continuer...
En fait, avec ce que tu me dis je ne comprends pas la deuxième ligne que tu m'as proposé
"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java
"C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku grille1.txt
pause
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 13:13
16 mai 2020 à 13:13
"je ne comprends pas la deuxième ligne que tu m'as proposé"
C'est une version corrigée de ce que tu avais mis dans le .bat de ta question :
Avec
Quant à ton erreur c'est parce que tu ne fais pas ce que je dis... Pour que args[0] fonctionne il faut passer le nom fichier en paramètre, c'est à dire
https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html
C'est une version corrigée de ce que tu avais mis dans le .bat de ta question :
java -cp . monSudoku grille1.txt
Avec
-cp .en moins puisque ça ne sert à rien et Sudoku au lieu de monSudoku...
Quant à ton erreur c'est parce que tu ne fais pas ce que je dis... Pour que args[0] fonctionne il faut passer le nom fichier en paramètre, c'est à dire
Sudoku grille1.txtpas
Sudokutout seul, sinon le programme ne sait pas quel fichier ouvrir.
https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
16 mai 2020 à 13:33
16 mai 2020 à 13:33
D'accord je comprends mieux,
alors j'ai modifié mon fichier.bat comme tu m'as dit :
et ça a donné le résultat suivant :
Ca ne fonctionne toujours pas...
alors j'ai modifié mon fichier.bat comme tu m'as dit :
"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java "C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku grille1.txt pause
et ça a donné le résultat suivant :
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku grille1.txt Exception in thread "main" java.nio.file.NoSuchFileException: grille1.txt at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108) at java.base/sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:120) at java.base/java.nio.channels.FileChannel.open(FileChannel.java:292) at java.base/java.nio.channels.FileChannel.open(FileChannel.java:345) at java.base/java.nio.file.Files.lines(Files.java:4102) at java.base/java.nio.file.Files.lines(Files.java:4194) at Sudoku.<init>(Sudoku.java:24) at Sudoku.main(Sudoku.java:130) C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause Appuyez sur une touche pour continuer...
Ca ne fonctionne toujours pas...
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 13:59
16 mai 2020 à 13:59
Et il est où ton fichier grille1.txt ?
Java va le chercher dans le classpath (le fameux
Java va le chercher dans le classpath (le fameux
-cp .) c'est à dire dans le même dossier que Sudoku.class pour l'instant.
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 922
Modifié le 16 mai 2020 à 13:47
Modifié le 16 mai 2020 à 13:47
Bonjour,
Si tu ne lui donnes pas le chemin du fichier grille1.txt il ne risque pas de le trouver tout seul.
Tu utilises mal la variable PATH, tu as dégagé tout le contenu de la variable pour ne laisser que java, c'est pas très malin.
Si tu ne lui donnes pas le chemin du fichier grille1.txt il ne risque pas de le trouver tout seul.
Tu utilises mal la variable PATH, tu as dégagé tout le contenu de la variable pour ne laisser que java, c'est pas très malin.
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
16 mai 2020 à 14:01
16 mai 2020 à 14:01
Bonjour,
où dois renseigner le chemin du fichier grille1 ?
J'ai utilisé la variable PATH pour que mon programme fonctionne sur eclipse.
J'ai inséré mon fichier monSudoku grille1.txt directement dans un fichier de mon projet java pour qu'il fonctionne peu importe l'endroit où il se trouve.
où dois renseigner le chemin du fichier grille1 ?
J'ai utilisé la variable PATH pour que mon programme fonctionne sur eclipse.
J'ai inséré mon fichier monSudoku grille1.txt directement dans un fichier de mon projet java pour qu'il fonctionne peu importe l'endroit où il se trouve.
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 14:02
16 mai 2020 à 14:02
Le chemin du fichier n'est pas obligatoire, il va être pris en relatif dans le classpath du programme (y compris si celui-ci est composé de plusieurs dossiers).
Quant à la variable path, c'est juste une surcharge dans le contexte du batch, ce n'est pas grave vu qu'il n'y a rien besoin d'autres que le JDK.
Quant à la variable path, c'est juste une surcharge dans le contexte du batch, ce n'est pas grave vu qu'il n'y a rien besoin d'autres que le JDK.
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
Modifié le 16 mai 2020 à 20:03
Modifié le 16 mai 2020 à 20:03
Qu'est ce que je dois alors faire pour que mon fichier "monSudoku grille 1.txt" soit lu avec le fichier lanceSudoku.bat ?
Comme je l'ai dit, pour le moment mon fichier "monSudoku grille 1.txt" est dans un fichier dans mon projet java Sudoku (d'où ("fichier/monSudoku grille1.txt")). Ce n'est pas cela qu'il faut faire ?
Comme je l'ai dit, pour le moment mon fichier "monSudoku grille 1.txt" est dans un fichier dans mon projet java Sudoku (d'où ("fichier/monSudoku grille1.txt")). Ce n'est pas cela qu'il faut faire ?
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 922
16 mai 2020 à 20:42
16 mai 2020 à 20:42
Il faut rajouter des doubles quotes autour de ton argument car celui-ci contient un ou plusieurs espaces :
"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java
"C:\Program Files\Java\jdk-14\bin\java.exe" "Sudoku grille1.txt"
pause
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 20:47
16 mai 2020 à 20:47
Ce n'était pas du tout dit que ton fichier s'appelait "monSudoku grille 1.txt" mais je comprends mieux d'où vient ce "monSudoku"...
Du coup ta commande doit être :
À condition que le fichier "monSudoku grille 1.txt" soit dans le même dossier que Sudoku.class et lanceSudoku.bat
Du coup ta commande doit être :
"C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku "monSudoku grille 1.txt"
À condition que le fichier "monSudoku grille 1.txt" soit dans le même dossier que Sudoku.class et lanceSudoku.bat
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
16 mai 2020 à 21:04
16 mai 2020 à 21:04
J'ai modifié mon fichier "monSudoku grille1.txt" par Sudoku.txt, car ma classe principale se nomme Sudoku, mais ça ne fonctionne toujours pas
J'ai le résultat suivant
Je ne sais vraiment plus quoi faire pour que le script affiche ma grille résolue...
@echo off set file="C:\Users\Magali\Documents\perso\NFP135-1\sudoku\Sudoku.txt" type %file% pause java -cp . Sudoku.txt "C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java "C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku.txt pause
J'ai le résultat suivant
# ----------------------- # Fichier grille1.txt # -- Exemple de fichier de definition d'une grille # ----------------------- 123456789 .6.....3. .7.....4. 789123456 ......... ......... 456789123 ......... ......... # ------------------------- # | 1 2 3 | 4 5 6 | 7 8 9 | # | . 6 . | . . . | . 3 . | # | . 7 . | . . . | . 4 . | # ------------------------- # | 7 8 9 | 1 2 3 | 4 5 6 | # | . . . | . . . | . . . | # | . . . | . . . | . . . | # ------------------------- # | 4 5 6 | 7 8 9 | 1 2 3 | # | . . . | . . . | . . . | # | . . . | . . . | . . . | # ------------------------- Appuyez sur une touche pour continuer... Erreur : impossible de trouver ou charger la classe principale Sudoku.txt Error: Could not find or load main class Sudoku.txt Caused by: java.lang.ClassNotFoundException: Sudoku.txt Appuyez sur une touche pour continuer...
Je ne sais vraiment plus quoi faire pour que le script affiche ma grille résolue...
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
16 mai 2020 à 21:17
16 mai 2020 à 21:17
Tu as oublié le nom de la classe ce qui est le plus important, java ne va pas ouvrir un fichier txt !
java.exe Sudoku Sudoku.txt
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
Modifié le 17 mai 2020 à 09:54
Modifié le 17 mai 2020 à 09:54
Ca y est, ça a fonctionné ! Je voulais vous remercier pour l'aide que vous m'avez apporté.
Du coup, mon fichier LanceSudoku.bat donne ceci :
et j'obtiens bien le même résultat que sur eclipse
J'ai juste une dernière question
Dans mon projet java sur eclipse, pour que mon programme fonctionne avec mon fichier "monSudoku grille1.txt", je dois avoir la commande suivante dans la classe main :
Alors que pour faire fonctionner mon fichier LanceSudoku.bat, je dois modifier
par
Du coup, mon fichier LanceSudoku.bat donne ceci :
"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java "C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku "monSudoku grille1.txt" pause
et j'obtiens bien le même résultat que sur eclipse
C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\javac.exe" Sudoku.java C:\Users\Magali\Documents\perso\NFP135-1\sudoku>"C:\Program Files\Java\jdk-14\bin\java.exe" Sudoku "monSudoku grille1.txt" Grille à résoudre 1 2 3 4 5 6 7 8 9 0 6 0 0 0 0 0 3 0 0 7 0 0 0 0 0 4 0 7 8 9 1 2 3 4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 5 6 7 8 9 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Solution du Sudoku 1 2 3 4 5 6 7 8 9 5 6 4 8 9 7 2 3 1 9 7 8 2 3 1 6 4 5 7 8 9 1 2 3 4 5 6 2 3 1 5 6 4 8 9 7 6 4 5 9 7 8 3 1 2 4 5 6 7 8 9 1 2 3 3 1 2 6 4 5 9 7 8 8 9 7 3 1 2 5 6 4 C:\Users\Magali\Documents\perso\NFP135-1\sudoku>pause Appuyez sur une touche pour continuer...
J'ai juste une dernière question
Dans mon projet java sur eclipse, pour que mon programme fonctionne avec mon fichier "monSudoku grille1.txt", je dois avoir la commande suivante dans la classe main :
public static void main(String[] args) throws IOException { Sudoku monSudoku = new Sudoku(Paths.get("fichier/monSudoku grille1.txt")); System.out.println("Grille à résoudre"); monSudoku.affichage(); // Essai de la résolution du sudoku if (monSudoku.solver()) { System.out.println("Solution du Sudoku"); monSudoku.affichage(); } else { System.out.println("Pas de solution pour cette grille"); } }
Alors que pour faire fonctionner mon fichier LanceSudoku.bat, je dois modifier
Sudoku monSudoku = new Sudoku(Paths.get("fichier/monSudoku grille1.txt"));
par
Sudoku monSudoku = new Sudoku(Paths.get(args[0]));
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 922
Modifié le 17 mai 2020 à 10:56
Modifié le 17 mai 2020 à 10:56
Je ne connais rien à Java ni Eclipse (est-ce un IDE ?), mais je suppose que quand tu exécutes ton programme tu ne lui passes pas de paramètre donc tu es obligé d'indiquer le chemin en "dur".
C'est quand même plus pratique et élégant de passer la grille en paramètre, plutôt que devoir modifier le fichier Java à chaque fois que tu veux traiter une autre grille, non ?
Je peux t'aider pour le script .bat, qui devrait ressembler à ça :
Ainsi tu auras juste à faire glisser la grille sur le batch pour que ça fonctionne, plus besoin de modifier le nom de la grille à chaque fois.
C'est quand même plus pratique et élégant de passer la grille en paramètre, plutôt que devoir modifier le fichier Java à chaque fois que tu veux traiter une autre grille, non ?
Je peux t'aider pour le script .bat, qui devrait ressembler à ça :
@echo off
set PATH=%PATH%;C:\Program Files\Java\jdk-14\bin
if exist "%~dpn1.txt" (
type "%~1"
javac.exe Sudoku.java
java.exe Sudoku "%~1"
)
pause
Ainsi tu auras juste à faire glisser la grille sur le batch pour que ça fonctionne, plus besoin de modifier le nom de la grille à chaque fois.
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
17 mai 2020 à 12:45
17 mai 2020 à 12:45
Dans Eclipse, tu vas dans "Run > Run Configurations". Tu devrais arriver directement dans "Java Application" sur un projet "Sudoku", éventuellement "Sudoku (1)", "Sudoku (2)"...
Dans le premier onglet "Main" tu vas avoir "Sudoku" dans la catégorie Main Class.
Ce qui t'intéresse c'est l'onglet "Arguments" où tu peux préciser dans "Program Arguments" la valeur "fichier/monSudoku grille1.txt" qui sera alors attribué à la valeur args[0] de la méthode main, comme en passant par le batch.
Dans le premier onglet "Main" tu vas avoir "Sudoku" dans la catégorie Main Class.
Ce qui t'intéresse c'est l'onglet "Arguments" où tu peux préciser dans "Program Arguments" la valeur "fichier/monSudoku grille1.txt" qui sera alors attribué à la valeur args[0] de la méthode main, comme en passant par le batch.
AEROTOWER
Messages postés
11
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
18 mai 2020
>
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
18 mai 2020 à 21:09
18 mai 2020 à 21:09
Merci beaucoup, ça a fonctionné
C'est plus pratique en effet !
C'est plus pratique en effet !