/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
cdrecord + java
Fra : torben


Dato : 19-08-05 20:32

Jeg er ved at lave noget til hjemmebrug, hvor jeg fra java skal kalde
programmet cdrecord (et cd-brænder program underlinux). Det kan jeg ikke
få til at virke.

En af de mere fancy thing er:

Lave et script mitProgram:

#!/bin/bash
echo $*
olddir=`pwd`
cd $1
shift;
echo $*
cdblocks=`/usr/bin/mkisofs -dvd-video -r -print-size -quiet $*`
echo $cdblocks
mkisofs -dvd-video -r $* | cdrecord dev=0,0,0 speed=16 -dao
tsize=${cdblocks}s -
cd $olddir

Basalt set laves et kald som "cdrecord min.iso"

Herefter danne en fil sti/til/temp med indholdet:
sti/til/mitProgram film1.mpeg film2.mpeg


Fra Java gør jeg nu ølgende:

Runtime runtime=Runtime.getRuntime();
Process proces=runtime.exec("at now+0min -f sti/til/temp"+,null,
new File(library));



Hvis jeg fra en terminal skriver "at now+0min -f sti/til/temp" virker
det hele fint. Men ikke fra java. Nogen ideer til, hvorfor det går galt ?

Med venlig hilsen
Torben Frøberg

 
 
Arne Vajhøj (19-08-2005)
Kommentar
Fra : Arne Vajhøj


Dato : 19-08-05 20:44

torben wrote:
> Jeg er ved at lave noget til hjemmebrug, hvor jeg fra java skal kalde
> programmet cdrecord (et cd-brænder program underlinux). Det kan jeg ikke
> få til at virke.

> Fra Java gør jeg nu ølgende:
>
> Runtime runtime=Runtime.getRuntime();
> Process proces=runtime.exec("at now+0min -f sti/til/temp"+,null,
> new File(library));
>
> Hvis jeg fra en terminal skriver "at now+0min -f sti/til/temp" virker
> det hele fint. Men ikke fra java. Nogen ideer til, hvorfor det går galt ?

Prøv:

String[] cmd = { "at", "now+0min", "-f", "sti/til/temp" };
Runtime runtime=Runtime.getRuntime();
Process proces=runtime.exec(cmd,null,new File(library));

Arne

Thomas Bendsen (19-08-2005)
Kommentar
Fra : Thomas Bendsen


Dato : 19-08-05 20:54

torben wrote:
> Jeg er ved at lave noget til hjemmebrug, hvor jeg fra java skal kalde
> programmet cdrecord (et cd-brænder program underlinux). Det kan jeg ikke
> få til at virke.
>
>
>
> Hvis jeg fra en terminal skriver "at now+0min -f sti/til/temp" virker
> det hele fint. Men ikke fra java. Nogen ideer til, hvorfor det går galt ?
>
> Med venlig hilsen
> Torben Frøberg

Hej Torben

Jeg har selv leget med noget tilsvarende engang, og fandt ud af at visse
tegn åbenbart gav problemer. I hjælpefilen til det jeg lavede har jeg
angivet tegnene "*~. Om nogen tilsvarende kan være skyld i dit problem
skal jeg ikke kunne sige. Under alle omstændigheder kan du måske løse
det ved at lave et shellscript der indeholder linien:
"at now+0min -f sti/til/temp"
og så i java skrive:
Process proces=runtime.exec("bash mitshellscript",null,new File(library));

Bemærk dog at min viden om Runtime klassen kan ligge på et meget lille
sted, så mit svar kan meget vel være helt i skoven.

Med venlig hilsen
Thomas Bendsen

Max Rotvel (20-08-2005)
Kommentar
Fra : Max Rotvel


Dato : 20-08-05 23:02

On Fri, 19 Aug 2005 21:31:46 +0200, torben <torben@frojonck.dk> wrote:

> Runtime runtime=Runtime.getRuntime();
> Process proces=runtime.exec("at now+0min -f sti/til/temp"+,null,

Det er kun et gæt, men prøv med at

proces.waitFor() før

> new File(library));

--
Max - rotvel AT bolignet-aarhus DOT dk

torben (21-08-2005)
Kommentar
Fra : torben


Dato : 21-08-05 22:47

torben wrote:
> Jeg er ved at lave noget til hjemmebrug, hvor jeg fra java skal kalde
> programmet cdrecord (et cd-brænder program underlinux). Det kan jeg ikke
> få til at virke.
>
> En af de mere fancy thing er:
>
> Lave et script mitProgram:
>
> #!/bin/bash
> echo $*
> olddir=`pwd`
> cd $1
> shift;
> echo $*
> cdblocks=`/usr/bin/mkisofs -dvd-video -r -print-size -quiet $*`
> echo $cdblocks
> mkisofs -dvd-video -r $* | cdrecord dev=0,0,0 speed=16 -dao
> tsize=${cdblocks}s -
> cd $olddir
>
> Basalt set laves et kald som "cdrecord min.iso"
>
> Herefter danne en fil sti/til/temp med indholdet:
> sti/til/mitProgram film1.mpeg film2.mpeg
>
>
> Fra Java gør jeg nu ølgende:
>
> Runtime runtime=Runtime.getRuntime();
> Process proces=runtime.exec("at now+0min -f sti/til/temp"+,null,
> new File(library));
>
>
>
> Hvis jeg fra en terminal skriver "at now+0min -f sti/til/temp" virker
> det hele fint. Men ikke fra java. Nogen ideer til, hvorfor det går galt ?

Er kommet frem til, at jeg forsøger at pipe fra mkisofs direkte over i
cdrecord (mkisofs fil1 file | cdrecord -). Af en eller anden grund kan
man ikke det.

Hvis jeg i stedet først
mkisofs -o min.iso fil1 fil2

og derefter

cdrecord min.iso

har jeg ingen problemer.

Det er bare lidt uheldigt, at denne løsning kræver en temporær fil
min.iso, som je godt kan være 4 GB.

Men tak for forslagene.

Mvh. Torben

Søg
Reklame
Statistik
Spørgsmål : 177449
Tips : 31962
Nyheder : 719565
Indlæg : 6408120
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste