Newsgroup: it.comp.java
Titolo: problema eseguzione comando java tramite funzione exec()

Salve  a tutti,
ho un problema che spero possiate risolvermi.
In pratica sto realizzando un sito web per l'università in XML, XSL,
JS e PHP.
Il php lo uso per chiamare tramite la funzione exec() una shell unix
che avvia l'applicativo java Apache Fop versione 0.95, alla quale do
in input un  file xml, un file xsl e lei mi genera il file pdf.
Il comando incriminato è:
"/System/Library/Frameworks/JavaVM.framework/Home/bin/java" -classpath
"/Library/Java/Home/fop/lib/xmlgraphics-commons-1.3.1.jar:/Library/
Java/Home/fop/lib/xml-apis-ext-1.3.04.jar:/Library/Java/Home/fop/lib/
xml-apis-1.3.04.jar:/Library/Java/Home/fop/lib/xercesImpl-2.7.1.jar:/
Library/Java/Home/fop/lib/xalan-2.7.0.jar:/Library/Java/Home/fop/lib/
serializer-2.7.0.jar:/Library/Java/Home/fop/lib/commons-
logging-1.0.4.jar:/Library/Java/Home/fop/lib/commons-io-1.3.1.jar:/
Library/Java/Home/fop/lib/batik-all-1.7.jar:/Library/Java/Home/fop/lib/
avalon-framework-4.2.0.jar:/Library/Java/Home/fop/build/fop.jar:/
Library/Java/Home/fop/build/fop-sandbox.jar:/Library/Java/Home/fop/
build/fop-hyph.jar:" org.apache.fop.cli.Main "-xml" "/Users/jeky/Sites/
iaacs/doc/cv/jd.xml" "-xsl" "/Users/jeky/Sites/iaacs/xsl/xsl-fo/
cv.xsl" "-pdf" "/Users/jeky/Sites/iaacs/pdf/1249056205.pdf"
Questo comando se eseguito manualmente da terminale funziona
correttamente, mentre se eseguito tramite funzione exec() da il
seguente errore Java:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /System/
Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries/
libawt.jnilib:
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1723)
	at java.lang.Runtime.loadLibrary0(Runtime.java:822)
	at java.lang.System.loadLibrary(System.java:993)
	at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:
50)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Toolkit.loadLibraries(Toolkit.java:1509)
	at java.awt.Toolkit.<clinit>(Toolkit.java:1530)
	at java.awt.Color.<clinit>(Color.java:250)
	at org.apache.fop.util.ColorUtil.initializeColorMap(ColorUtil.java:
510)
	at org.apache.fop.util.ColorUtil.<clinit>(ColorUtil.java:54)
	at org.apache.fop.fo.expr.NCnameProperty.getColor(NCnameProperty.java:
52)
	at org.apache.fop.fo.properties.ColorProperty$Maker.convertProperty
(ColorProperty.java:80)
	at org.apache.fop.fo.properties.PropertyMaker.make(PropertyMaker.java:
441)
	at org.apache.fop.fo.properties.PropertyMaker.make(PropertyMaker.java:
391)
	at org.apache.fop.fo.properties.PropertyMaker.get(PropertyMaker.java:
299)
	at org.apache.fop.fo.PropertyList.get(PropertyList.java:176)
	at org.apache.fop.fo.StaticPropertyList.get(StaticPropertyList.java:
72)
	at org.apache.fop.fo.PropertyList.get(PropertyList.java:156)
	at org.apache.fop.fo.properties.CommonBorderPaddingBackground.<init>
(CommonBorderPaddingBackground.java:221)
	at org.apache.fop.fo.PropertyList.getBorderPaddingBackgroundProps
(PropertyList.java:584)
	at org.apache.fop.fo.pagination.Region.bind(Region.java:64)
	at org.apache.fop.fo.pagination.RegionBody.bind(RegionBody.java:56)
	at org.apache.fop.fo.FObj.processNode(FObj.java:126)
	at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement
(FOTreeBuilder.java:286)
	at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:
163)
	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag
(ToXMLSAXHandler.java:204)
	at org.apache.xml.serializer.ToSAXHandler.flushPending
(ToSAXHandler.java:277)
	at org.apache.xml.serializer.ToXMLSAXHandler.endElement
(ToXMLSAXHandler.java:243)
	at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:1399)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2411)
	at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:1374)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2411)
	at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:1374)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2411)
	at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:1374)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes
(ElemApplyTemplates.java:393)
	at org.apache.xalan.templates.ElemApplyTemplates.execute
(ElemApplyTemplates.java:176)
	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2411)
	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode
(TransformerImpl.java:2281)
	at org.apache.xalan.transformer.TransformerImpl.transformNode
(TransformerImpl.java:1367)
	at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:709)
	at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1284)
	at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1262)
	at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
	at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
	at org.apache.fop.cli.Main.startFOP(Main.java:166)
	at org.apache.fop.cli.Main.main(Main.java:197)
Il problema è che sia Apache , sia il terminale eseguono la shell come
utente jeky, che ha tutti i permessi necessari, difatti da terminale
il programma funziona.
Qualcuno mi puo' aiutare?

 Qualcuno mi puo' aiutare?
Senti giusto per fare una prova io ho usato il wrapper sh di apache fop
in questo modo:
<?php
$binario_fop  = '/tmp/fop-0.95/fop -q';
$sorgente     = '/tmp/fop-0.95/examples/fo/basic/
list.fo
';
$destinazione = '/tmp/test.pdf';
$comando_fop  = $binario_fop . ' -fo ' . $sorgente . ' -pdf ' .
$destinazione . ' 2>/dev/null';
$ouput = exec($comando_fop);
?>
e non ho problemi di sorta.