OVH Cloud OVH Cloud

Graver cd depuis java

1 réponse
Avatar
Huwiler Sylvain
hello tout le monde

voila je voulais savoir si a votre conaissance il existe une solution pour
graver un cd depuis un programme en java je suis sous linux mais je voudrais
éviter d'utiliser une application externe

je veux pas reffaire nero en java juste ajouter un systeme de backup sur cd
a un programme ...

merci de votre aide

1 réponse

Avatar
Christophe M
Huwiler Sylvain wrote:
hello tout le monde

voila je voulais savoir si a votre conaissance il existe une solution pour
graver un cd depuis un programme en java je suis sous linux mais je voudrais
éviter d'utiliser une application externe

je veux pas reffaire nero en java juste ajouter un systeme de backup sur cd
a un programme ...

merci de votre aide




Hé bien, pour ma part, je pense qu'il n'y a rien de simple dans ce
domaine. Graver un cd demande un accès assez bas niveau au graveur (donc
au matériel/lecteur) , pas disponible dans la jvm.
De plus, je crois qu'il y a une licence pour ces dits accès (Même en
delphi, par ex, j'ai jamais trouvé de dll "gratuite" pour faire ça)

Moi j'ai utilisé justement un programme externe, c'est cdrecord
(disponible sur linux et aussi sous windows)
toute la préparation est faite en java (choix des fichiers, etc.), puis
quand tout est prèt je lance le programme de génération d'image ISO,
puis après la gravure de l'image sur le CD.

La plus grosse difficulté a été de gérer les process externes avec la
gestion des input/outputstream pour la lecture/écriture vers les entrées
standards des différences process (Un comportement bizarre qui oblige à
"vider" les streams complètement sinon le porgramme resté "coincé" sur
on ne sait pas quoi...).

De même, il faut gérer soit même le "pipe" entre la génération de
l'image ISO et la gravure si on veut pas passer par une image (une étape
et bcp d'espace disque de gagnée ;-), tout ça via un thread qui ne fait
que lire d'un côté pour écrire de l'autre.

Au final ça fonctionne tout de même bien, et partout ou existe le
programme cdrecord, on peut utiliser notre programme. J'ai même utilisé
une regex pour l'analyse des messages de cdrecord pour faire une
progressbar de la gravure en cours

Bon courage