Menu

skel  Edit

Frédéric Glorieux

Structurer ses fichiers pour un projet

Arbre des fichiers

La structuration d'un projet Java, établie par l'usage, n'est pas une convention arbitraire mais une conséquence de plusieurs concepts propres à ce langage. Ce langage est compilé, donc on trouvera un dossier pour le code source src, et un pour les classes compilées build ; ce langage est exécuté dans une machine virtuelle qui fait abstraction du système de l'hôte, il faut donc un point de contact avec java, ici par des scripts windows (batch) et tux/macos (shell) dans bin ; dans ce langage la documentation est requise et normalisée doc ; java est un langage industriel, permettant une collaboration organisée à grande échelle lib.

  • mon_projet
    • src/fr/crim/a2010/me/*.java (sources java)
    • build/**.class (dossier des classes compilées)
    • bin (scripts pour exécuter et compiler)
      • run.(bat|sh)
      • compile.(bat|sh)
    • doc (pour la javadoc)
    • lib (pour les jars dont dépendent votre code)
    • dist (pour distribuer votre œuvre)
    • test (pour les classes de test)
    • build.xml (pour ant)

Scripts utiles

  #! /bin/sh 
  # en shell
  # mémoriser le dossier courant
  retour=`pwd`
  # monter au dossier parent de ce script ($0)
  cd `dirname "$0"`/../
  # javac -g -encoding UTF-8 -extdirs lib -d build src/fr/crim/a2010/me/*
  # passer les arguments du script à la classe java
  java -cp build fr.crim.a2010.me.Main "$1" "$2" "$3" "$4"
  # retour au dossier courant
  cd $retour  

pour Windows, un build.bat (mode d'emploi dans :help)

@echo off
:: mémoriser le dossier courant
SET retour=%CD%
:: dossier parent de ce script, on ne sait jamais d'où les gens appellent (ex: double click)
SET parent=%~dp0..\
CD %parent%

IF "%1"=="" GOTO help
IF NOT "%1"=="-build" GOTO java
:: sortir l'option de la pile d'argument
SHIFT

:javac
:: en cas d'accents dans les noms de fichiers, javac attend des fichiers au format ISO 
CHCP 1252>NUL
DIR /S /B src\*.java > sources.txt
CHCP 65001>NUL
javac -encoding UTF-8 -d build @sources.txt
DEL sources.txt
IF "%1"=="" goto end

:java
:: exécution (en unicode)
CHCP 65001>NUL
:: attention, demande console en police TTF unicode
:: dans la console, clic droit / Propriétés / Police
:: définitivement regedit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\(Par défaut)=0
:: si vous avez une console en TTF (et seulement après l'étape ci dessus, sous peine de système qui ne démarre plus)
:: fixer définitivement encodage console en unicode
:: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage=65001
java  -cp build "%1" "%2" "%3" "%4" "%5" "%6" "%7" "%8" "%9"

GOTO end
:help
ECHO Usage : run.bat -build? nom.de.classe argument1 argument2
ECHO -build : compiler le projet avant d'exécuter 

:end

Divers

Le JDK de SUN est installé sur les postes sous Mandriva Linux. Pour l'utiliser en lieu et place de l'Open JDK, il faut ajouter les 2 lignes suivantes au fichier ~/.bashrc :
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-sun-1.6.0.15/
export PATH=$JAVA_HOME/bin:$PATH

Pour les adeptes de Windows, les accents de nos programmes Java peuvent s'afficher correctement dans une fenêtre de commande DOS. Il faut pour cela :

  • Changer la police utilisée dans la fenêtre :
    • Clic-droit sur la barre de titre
    • Menu Propriétés
    • Onglet Police, choisir Lucida Console (ou autre ttf)
  • Changer l'encodage de la console en unicode chcp 65001

Related

Wiki: 2012-10-24
Wiki: 2012-11-14
Wiki: 2012-2013
Wiki: 2013-10-09
Wiki: Home 2013-12-11 22:25:56.186231
Wiki: Home

Discussion

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.